1

我正在尝试将 gdb 与用 C/C++ 编写的 MySQL 源代码一起使用。在mysql-test/t中,我创建了一个自定义测试用例文件,example.test然后使用以下代码行对其进行调试

/mysql-test-run --gdb example

现在我想查看执行流程,因为它从文件中的一个函数更改为某个不同文件中的另一个函数。我不确定执行是如何变化的,所以我无法预先定义断点。关于如何查看包含多个源代码文件的流程的任何解决方案?

4

1 回答 1

0

您可以使用该next指令在源代码中逐行执行步骤。在适当的时候,您可以使用该step指令采取步骤“进入”当前行上正在调用的函数。

一个合理的方法是next直到你认为你只是传递你正在寻找的外部可见行为。然后重新开始,在你上次看到行为之前停在线路上。那么step这次。根据需要重复,直到找到您要查找的代码。如果你认为它遇到了某种死锁,那它就容易多了——只需Ctrl-C在你认为它被卡住并且它应该在有趣的地方停止时中断 () 程序。

一般来说,浏览源代码你会建立一些你认为有趣的地方。您可以酌情记下源文件和行号和/或函数名称,并在以后直接设置这些断点,以避免繁琐的//next业务。nextnext

于 2012-07-21T15:09:16.293 回答