直到断点gdb调用的函数列表

时间:2018-04-08 03:28:37

标签: gdb callstack

我正在使用gdb来跟踪程序的执行流程。我正在使用开源代码库并使用某些库函数来完成我的任务。我有兴趣知道程序到达特定函数所需的路径,我在其中放置了一个断点。在gdb中是否有一种方法可以列出在到达断点之前调用的所有函数。我希望在特定的数据结构中添加一个字段,只有当我知道要修改的数据结构的确切函数时才能完成。

1 个答案:

答案 0 :(得分:0)

  

我很想知道程序到达特定函数的路径,我在这里放置了一个断点。

这可以通过在每个函数上设置一个断点来实现,例如rbreak .,但对于任何比小玩具程序更大的东西都不是一个可行的方法。

  

gdb中是否有一种方法可以列出在到达断点之前调用的所有函数。

没有

  

我希望在特定的数据结构中添加一个字段,只有当我知道要修改的数据结构的确切函数时才能完成。

你错了。您正试图用GDB替换代码理解和索引工具,但GDB 不是这样的工具。

此外,知道在断点之前调用的所有函数决不会回答“哪些精确函数修改了结构” - 而是获得超集。该超集可能比您感兴趣的集合大1000倍。

TL; DR:阅读源代码,使用有助于代码理解和索引的工具,不要试图将GDB用作这样的工具(你会失败)。