在使用GDB进行调试时如何打印指针指向的字符串?

341*_*008 13 c linux gdb pointers

当使用GDB单步执行程序时,如何检查指针指向的字符串?

我可以看到指针指向0x82c6e10.我知道这是一个字符串.我该如何打印?

使用printf("%s\n", 0x82c6e10)给出Bad format string, missing '"'.gdb不抱怨未知命令的事实告诉我解决方案是我正在做的事情的一些变化.我对吗?我试图逃避报价,但这没有帮助.

Pau*_*l R 18

使用x而不是p:

x /s 0x82c6e10
Run Code Online (Sandbox Code Playgroud)


wno*_*ise 15

printf不是一个函数,而是一个gdb命令.省略括号.

更好的是,只需使用print命令或x带格式的命令/s

(你实际上可以printf()call命令调用C函数.)`

gdbhelp命令提供了大量的帮助.试试吧.


Jac*_*zny 14

尝试:

print (char *)pointer
Run Code Online (Sandbox Code Playgroud)