gdb打印字符*为字符串字符
问题>如何使gdb能够按如下方式打印buf:gdb打印字符*为字符串字符,gdb,Gdb,问题>如何使gdb能够按如下方式打印buf: “35=DC\00149=ABCD\001” 多谢各位 问题>如何使gdb能够按如下方式打印buf: 现在没有办法做到这一点。如果愿意,您可以提交gdb错误报告 这里发生的事情是,gdb的字符串打印函数有一个特殊情况,即当数字跟随作为转义序列发出的字符时,它会转义一个数字。这就是为什么会看到\064而不是4如何确定字符串的长度?我没有看到空终止符。我知道长度,因为我手动写入buf。非常感谢。 char* buf; ... (gdb) x/s buf
“35=DC\00149=ABCD\001”
多谢各位
问题>如何使gdb能够按如下方式打印buf:
现在没有办法做到这一点。如果愿意,您可以提交gdb错误报告
这里发生的事情是,gdb的字符串打印函数有一个特殊情况,即当数字跟随作为转义序列发出的字符时,它会转义一个数字。这就是为什么会看到
\064
而不是4
如何确定字符串的长度?我没有看到空终止符。我知道长度,因为我手动写入buf。非常感谢。
char* buf;
...
(gdb) x/s buf
0x7fffef8f5f80: "35=DC\001\064\071=ABCD\001"
(gdb) x/12cb buf
0x7fffef8f5f80: 51 '3' 53 '5' 61 '=' 65 'D' 66 'C' 1 '\001' 52 '4' 57 '9'
0x7fffef8f5f88: 61 '=' 83 'A' 80 'B' 88 'C' 84 'D' 1 '\001'