我正在尝试使用带有MySQL源代码的gdb,它是用C/C++编写的。在mysql-test/t中,我创建了一个自定义测试用例文件,比如example.test,然后使用以下代码行对其进行调试
/mysql-test-run --gdb example现在,我想看看执行流程,因为它从一个文件中的一个函数更改到某个不同文件中的另一个函数。我不确定执行是如何改变的,所以我不能预先定义断点。对于如何使用多个源代码文件查看流程,有什么解决方案吗?
发布于 2012-07-21 23:09:16
您可以使用next指令逐行遍历源代码。在适当的情况下,您可以使用step指令对当前行上调用的函数执行"into“步骤。
一种合理的方法是执行next,直到您认为您只是传递了您正在寻找的外部可见行为。然后重新开始,就在你上次看到行为之前的那条线上停下来。然后这次使用step。根据需要重复上述步骤,直到找到您要查找的代码。如果您认为它遇到了某种死锁,那就容易多了--只要在您认为程序卡住了的时候中断(Ctrl-C)程序,它就应该停在您感兴趣的地方。
一般来说,浏览一下源代码,你会建立一些你认为有趣的地方。您可以根据需要记下源文件、行号和/或函数名,并在将来直接设置这些断点,以避免繁琐的next/next/next业务。
https://stackoverflow.com/questions/11593242
复制相似问题