添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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

17 人关注

当使用GDB踏过一个程序时,我如何检查一个指针所指向的字符串?

我可以看到a指针指向了 0x82c6e10 。我知道它是一个字符串。我怎样才能打印它呢?

使用 printf("%s\n", 0x82c6e10) 得到 Bad format string, missing '"'. 。gdb没有抱怨未知命令的事实告诉我,解决方案是我正在做的一些变化。我说的对吗?我试着去掉引号,但这并没有帮助。

c
linux
pointers
gdb
341008
341008
发布于 2010-11-24
4 个回答
Paul R
Paul R
发布于 2010-11-24
已采纳
0 人赞同

Use x rather than p :

x /s 0x82c6e10
    
Jacek Konieczny
Jacek Konieczny
发布于 2010-11-24
0 人赞同
print (char *)pointer
    
wnoise
wnoise
发布于 2010-11-24
0 人赞同

这里的 printf 不是一个函数,而是一个 gdb 命令。 省略括号。

更好的办法是,只需使用 print 命令,或使用格式为 x /s 命令。