【问题标题】:GDB with multiple files of MySQL source code带有多个 MySQL 源代码文件的 GDB
【发布时间】:2012-07-21 23:19:38
【问题描述】:

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

/mysql-test-run --gdb example

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

【问题讨论】:

    标签: c++ mysql gdb


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2013-01-31
      相关资源
      最近更新 更多