gpt4 book ai didi

c++ - 获取 GDB 便利变量中保存的值的符号信息

转载 作者:可可西里 更新时间:2023-11-01 18:39:42 25 4
gpt4 key购买 nike

我经常发现在调试程序时遍历堆栈并获取我遇到的任何正确对齐的指针大小值的符号很有用。我已经厌倦了手动执行此操作,因此我尝试编写一个命令来为我执行此操作。问题是“信息符号”似乎不喜欢在通过指针取消引用设置其参数时使用便利变量作为其参数。即:

(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)

这是为什么?这是一个错误吗?有没有其他方法可以做到这一点?

谢谢!

吕克

PS:使用 Vanilla GDB 7.5

从列表更新:

这很可能是一个错误。

最佳答案

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

关于c++ - 获取 GDB 便利变量中保存的值的符号信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12940845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com