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

时间:2010-11-24 08:55:25

标签: c linux pointers gdb

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

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

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

4 个答案:

答案 0 :(得分:18)

使用x而不是p

x /s 0x82c6e10

答案 1 :(得分:15)

此处printf不是函数,而是gdb命令。省略括号。

更好的是,只需使用print命令或格式为x的{​​{1}}命令

(您实际上可以使用/s命令调用C函数printf()。)`

call可以使用gdb命令提供大量帮助。试试吧。

答案 2 :(得分:14)

尝试:

print (char *)pointer

答案 3 :(得分:3)

print(char *)0x82c6e10