gdb print char * as string characters

时间:2017-11-03 15:05:00

标签: gdb

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'

问题>如何启用gdb以如下方式打印buf:

"35=DC\00149=ABCD\001"

谢谢

1 个答案:

答案 0 :(得分:3)

  

问题>如何启用gdb以如下方式打印buf:

现在无法做到这一点。如果您愿意,可以提交gdb错误报告。

这里发生的是gdb的字符串打印函数有一个特殊情况,当它跟随作为转义序列发出的字符时转义一个数字。这就是为什么你看到\064而不是4