shr*_*ght 7 c c++ debugging gdb
我经常发现在调试程序时使用堆栈是很有用的,并且我会遇到任何正确对齐的,指针大小的值的符号.我已经厌倦了手动执行此操作,因此我尝试编写一个命令来为我完成此操作.问题是"信息符号"似乎不喜欢在通过指针取消引用设置其参数时使用便利变量作为其参数.IE:
(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)
Run Code Online (Sandbox Code Playgroud)
为什么是这样?这是一个错误吗?有没有不同的方法来做到这一点?
谢谢!
吕克
PS:使用vanilla GDB 7.5
从列表更新:
这很可能是一个错误.
| 归档时间: |
|
| 查看次数: |
579 次 |
| 最近记录: |