首页 > 解决方案 > 在 VScode 中使用 GDB 将 watch 变量的格式设置为十六进制

问题描述

GDB:GNU gdb(GDB)7.6.1
VScode:1.52.1(系统设置)

我只想在调试时获取某个变量的十六进制值。
我尝试添加变量,如“变量,h”和“变量,x”,但它显示错误“必须将格式指定为:'自然'、'二进制'、'十进制'、'十六进制'或'八进制' "

在这种情况下有什么适当的解决方案吗?

标签: visual-studio-codegdbhexwatchvscode-debugger

解决方案


格式说明符<variable>,h<variable>,x在 GDB 中映射到零十六进制输出格式 ( /z )。它就像/x格式,值被视为整数并打印为十六进制,但打印前导零以将值填充到整数类型的大小。需要更新的 GDB 版本 (>=7.11) 来支持它。有关更多信息,您可以在 VS Code 的 C/C++ 扩展存储库上阅读此问题

如果要获取十六进制值,解决方法是将变量视为 void 指针:(void *)variable


推荐阅读