将gdb显示保存到变量

时间:2010-07-06 03:21:31

标签: c++ debugging gdb

有没有办法将gdb中最后一个命令的输出存储到字符串中?我想要做的是存储所选机器级指令的地址信息。重定向输出不是解决方案,因为它会产生太多输出。模拟器也是一个解决方案,但我想看看是否可以使用gdb,因为我只想在一小块代码上进行分析。

所以我需要这样的东西:

(gdb) display/i $pc 
(gdb) 1: x/i $pc  0x100000d2e <main+61>:    jle    0x100000d02 <main+17
(gdb) set $foo = ??? somehow set this to display line 1
(gdb) call myFunc($foo)

(我排除了循环控件以保持示例简单)

还是会有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

据我所知,这是不可能的,考虑到作者的所有Lisp背景,这有点令人惊讶:)你需要重定向(grepsed和{{1}在大文件上创造奇迹,并且总是awk),或者你自己的基于perl的指令解码,我认为这不是一个选项。

然后我真的不明白你想要做什么。找出跳跃目标?搬迁的正确性?在运行时之前你还不知道代码是什么?更多细节可能指向更好的方向。

编辑:

只是一些链接 - 尚未尝试过 - 您可能想要使用$pc设置,看看是否可以让Python命令文件适合您: 请参阅Extending GDBPython in GDB