VSCode可以在调试模式下显示本地变量的十六进制值吗?我一直在寻找方法使其实现,但没有成功。
VSCode可以在调试模式下显示本地变量的十六进制值吗?我一直在寻找方法使其实现,但没有成功。
我知道这是一个旧的线程,但它在我的 Google 搜索结果中排名靠前,所以我想添加一些新信息,这些信息我在 Burt_Harris 链接的问题线程中找到。
您似乎无法更改本地窗格或工具提示中显示的值的格式,但您可以通过在变量名称后附加 ,x
强制在“监视”窗格中为变量指定格式。
其他格式也存在,例如二进制的 ,b
,八进制的 ,o
。我认为这基于 GDB 显示修改器的使用(例如 display/x myVariable
)。
在 VSCode 的“监视”窗格中使用的后缀:
这个问题已经有一段时间没有活动了,但我通过查看Cortex-Debug Github(Issues)的此线程链接发现了一个解决方案。在(GDB)调试控制台中使用-exec set output-radix 16
可以将数字显示为十六进制,将其设置为10则显示为十进制。
-exec set output-radix 16
- Edson Manoel我也在寻找同样的方法,最终来到这里,看到该功能请求目前已被拒绝。
但后来我意识到:在监视窗口中,你可以添加一个表达式,而数字有一个toString的方法,可以选择将数字转换为什么进制数(2-36)。它是有效的:
不仅仅只监视value
,对于十六进制,请监视value.toString(16)
。
我曾尝试在我的代码中向数字原型添加更多方法(我想要一个分组显示),但不幸的是,它只显示为“[Object object]”。
我知道这不完全是你想要的,但是这是一种无需任何插件即可使用的方法。
$xyz.ToString('x')
。 - timelmer-exec set output-radix 16
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{ "text": "set output-radix 16" }
]
正如@some所说的那样,您可以在监视器中添加一个表达式。以下是您需要添加的表达式,以将字节片显示为十六进制字符串:
call hex.EncodeToString(mySliceOfBytes)
Lldb:Display Format
。可以通过在VSCode设置中的搜索栏中键入lldb.displayFormat
来找到它。使用GDB,您可以将其转换为void*:(void*)var
,它会将其视为指针,并以十六进制显示。
实际上,您可以打开调试控制台并使用hex()函数转换值。