我正在尝试将gdb与使用C / C ++编写的MySQL源代码一起使用。在mysql-test/t
中,我创建了一个自定义测试用例文件,比如example.test
,然后使用以下代码行调试它
/mysql-test-run --gdb example
现在我希望看到执行流程,因为它从一个文件中的一个函数更改为另一个文件中的另一个函数。我不确定执行的变化,所以我无法预先定义断点。有关如何使用多个源代码文件查看流程的任何解决方案?
答案 0 :(得分:0)
您可以使用next
指令逐步执行源代码。在适当的时候,您可以使用step
指令在当前行上调用“调入”函数。
合理的方法是next
,直到您认为只是传递了您正在寻找的外部可见行为。然后重新开始,在你上次看到行为之前停在线上。然后这次是step
。根据需要重复,直到找到您要查找的代码。如果您认为它遇到某种死锁,那么它就会变得非常容易 - 当您认为该程序被卡住时,只需中断(Ctrl-C
)该程序就应该停留在有趣的位置。
一般来说,走过源头,你会建立一些你认为有趣的地方。您可以根据需要记录源文件和行号和/或函数名称,并在将来直接设置这些断点,以避免繁琐的next
/ next
/ next
业务。