1

我对编译器领域很陌生。我正在使用 gcc,我想获取特定运行的程序的执行历史记录,即只有那些在上次运行中实际执行的语句。

gdb可以吗?我无法在 gdb 中获得可以输出已执行语句的相关选项。或者还有其他获取执行历史的方法吗?

问候,尼基尔。

4

2 回答 2

5

过程记录可能是您正在寻找的。该链接有一个快速教程和功能概述。

从链接的 wiki 页面:

使用 -g 编译这个程序,并将其加载到 gdb 中,然后执行以下操作:

 (gdb) break main  
 (gdb) run  
 (gdb) record

这将打开进程记录,现在将记录被调试程序执行的所有后续指令。

请注意,您可以在任何时候开始过程记录(不仅仅是在主要位置)。您可以选择稍后启动,甚至更早启动。唯一的限制是您的程序必须正在运行(因此您必须在“记录”之前键入“运行”)。如果您想从程序的第一条指令开始录制,您可以这样做:

 (gdb) break _start   
 (gdb) run   
 (gdb) record

希望这可以帮助。

于 2012-08-21T18:36:35.000 回答
0

您可以使用set history save命令开始记录历史记录。这可以写入~/.gdbinit文件中。查看文档以获取更多信息。

于 2012-08-21T18:36:47.213 回答