gdb print不会打印出来自char数组的可读内容

Ton*_*ark 8 c printing gdb

我有一个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"
Run Code Online (Sandbox Code Playgroud)

如何p将其转换为可读格式?

Mic*_*urr 16

x/s buffer 应该将数组的内容显示为以空字符结尾的字符串(这是我假设你喜欢的).


Mik*_*ale 10

如果你想在终止null之后摆脱垃圾(所以你只是看到"/*"这个字符串)你可以使用:

p (char*)buffer
Run Code Online (Sandbox Code Playgroud)

目前将gdb变量打印为数组,因此它显示全部100个字符; 将其转换为char*使其作为C字符串打印.