为GDB便利性变量中保存的价值的符号信息

问题描述 投票:0回答:2

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

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

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

thanks!

-luc

PS:使用香草GDB7.5

列表中的任期:

这很可能是一个错误。

c++ c debugging gdb
2个回答
1
投票

这是GDB7.5

0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.