我有一些多年未维护的遗留 C++ 代码。我正在尝试了解它目前的功能。它需要 .xml 输入并且应该输出一个输出文本文件。处理两个不同的 .xml 输入文件所花费的时间大不相同,其中一个运行正常,另一个则不正常。不过,它们的开头是一样的。我想输出当我使用两个不同的输入执行代码时所做的函数调用的日志文件,并将这些日志相互比较以查看它们开始分歧的位置。我不能只在 main() 的第一行中断代码,然后逐步完成 gdb 中的控制流。时间太长了 理想情况下,我想找到一种方法来做类似的事情
gdb --args old_exec inp1.xml -step >log1.txt
gdb --args old_exec inp2.xml -step >log2.txt
diff log1.txt log2.txt
当然,“-step”标志不是真实的,但也许有某种方式告诉它记录所有步骤确实存在。有什么想法吗?谢谢!