首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为GDB方便变量中的值获取符号信息

为GDB方便变量中的值获取符号信息
EN

Stack Overflow用户
提问于 2012-10-17 18:25:15
回答 1查看 722关注 0票数 7

当我调试一个程序时,我常常发现在调试程序时遍历堆栈并为我遇到的任何对齐指针大小的值获取符号是很有用的。我已经厌倦了手工操作,所以我尝试编写一个命令来完成它。问题是,当通过指针取消引用设置参数时,"info符号“似乎不喜欢使用方便的变量作为参数。IE:

代码语言:javascript
复制
(gdb) info symbol 0xb6ca4d28
[Useful Symbol Information]
(gdb) set $pointer = $esp
(gdb) while ( *(int*)$pointer != 0xb6ca4d28)
 >set $pointer += 4
 >end
(gdb) x/x $pointer
0x6ebee064:     0xb6ca4d28
(gdb) set $dereferencePointer = *(int *)$pointer
(gdb) p/x $dereferencePointer
$103 = 0xb6ca4d28
(gdb) info symbol $dereferencePointer
No symbol matches $dereferencePointer.
(gdb) set $dereferencePointer = 0xb6ca4d28
(gdb) p/x $dereferencePointer
$104 = 0xb6ca4d28
(gdb) info symbol $dereferencePointer
[Useful symbol information]
(gdb)

为什么会这样呢?这是个虫子吗?有什么不同的方法吗?

谢谢!

Luc

PS:使用香草GDB 7.5

从列表中更新:

这很可能是个bug。

EN

回答 1

Stack Overflow用户

发布于 2012-11-25 18:44:27

不管是否有错误,我建议使用带有p和x命令的/a格式说明符。这对我来说总是有效的,而且打字也更快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12940845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档