我使用的是LLDB extension for VSCode,而我输入为i8
的变量被打印为字符。无论是在VSCode调试面板中,还是在调试器控制台中使用print
时。
变量的定义方式如下:
for y in 0..self.height
self.height
是一个i8
。
我找到了How do I make the Xcode debugger show uint8_t values as numbers?,但即使尝试添加一个fromat:type format add -f decimal int8_t
,print y
仍然输出(signed char) $5 = '\a'
而不是 (让我参考C转义序列和ascii图表...)7
。
2条答案
按热度按时间ovfsdjhp1#
如果其他人遇到这种情况,这可能会很用途:
变量将被打印为
d
所指示的“decimal”。所有格式的列表可在此处找到(AFAIK):https://lldb.llvm.org/use/variable.html#id1。经过进一步的尝试和错误,我找到了如何将所有“signed char”格式化为小数,至少在当前会话中是这样:
这在两柴主控台中打印变数时都可以使用,而且也会立即更新VSCode两柴面板中的值。
如果有人知道如何获得持久化,或者更好的方法是,告诉LLDB该类型实际上不是字符,而是整数,请告诉我。
sirbozc52#
我知道这个线程是几个月前的事了,但是我遇到了同样的问题。我设法通过UI进入CodeLLDB的扩展设置,并在Pre Run Commands下添加命令来修复它。由于某种原因,它也不能通过launch.json对我起作用。
对于我的用例,我只是补充了一句:
type format add --format u 'unsigned char'