我有一个char buffer[100]
,我正在尝试使用gdb在运行时的各个阶段读取它的内容。
我使用p buffer
,我得到了
"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
如何让p
将其转换为可读格式?
答案 0 :(得分:16)
x/s buffer
应该将数组的内容显示为以空字符结尾的字符串(这是我假设你喜欢的)。
答案 1 :(得分:10)
如果你想在终止null之后摆脱垃圾(所以你只能看到"/*"
这个字符串)你可以使用:
p (char*)buffer
目前gdb
正在将您的变量打印为数组,因此它显示所有100个字符;将其转换为char*
使其将其打印为C字符串。