当使用GDB单步执行程序时,如何检查指针指向的字符串?
我可以看到指针指向0x82c6e10
。我知道这是一个字符串。我该如何打印?
使用printf("%s\n", 0x82c6e10)
给出Bad format string, missing '"'.
gdb没有抱怨未知命令的事实告诉我解决方案是我正在做的事情的一些变化。我对吗?我试图逃避报价,但这没有帮助。
答案 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