我正在使用VSCode的LLDB扩展,并且我的变量类型为i8
被打印为字符。在VSCode调试面板中,以及在调试器控制台中使用print
时。
变量定义如下:
for y in 0..self.height
self.height
为i8
。
我发现我如何使Xcode调试器显示uint8_t值作为数字?,但即使尝试添加fromat:type format add -f decimal int8_t
,print y
仍然输出(signed char) $5 = 'a'
而不是(让我参考C转义序列和ascii图…)7
.
我知道这个线程是几个月前的,但我遇到了同样的问题。我设法通过UI进入CodeLLDB的扩展设置来修复它,并在预运行命令下添加命令。由于某些原因,它在发射过程中不起作用。Json也适合我。
对于我的用例,我只是添加了:
type format add --format u 'unsigned char'
如果有人遇到这个,这可能是有用的:
frame variable --format d y
该变量将被打印为"decimal"由d
指示。所有格式的列表可以(AFAIK)在这里找到:https://lldb.llvm.org/use/variable.html#id1.
经过进一步的跟踪和错误,我想出了如何格式化所有的"signed字符"对于小数,至少对于当前会话:
type format add --format d 'signed char'
这将在调试控制台中打印变量时工作,并且它也将立即更新VSCode的调试面板中的值。
如果有人知道如何获得这种持久性,或者更好,告诉LLDB类型实际上是而不是一个字符但是一个整数,请告诉我。