获取使用GDB调用的函数

时间:2010-05-04 09:03:55

标签: gdb

我正在使用GDB来理解C ++程序。我在跑步过程中休息了一下,结果就像是:

打破main.cpp:500

我希望看到以前调用过哪些函数。我尝试了“回溯”但它只显示了关于main的信息,因为先前对以前函数的调用已经完成。

我的问题是如何获得(使用GDB或其他方法)关于在此之前调用了哪些函数的信息,即使已经返回了调用。

由于

1 个答案:

答案 0 :(得分:1)

gdb脚本可能是您的问题的解决方案。

创建一个脚本,将断点放在每个可能被调用的函数上。 在休息时用'bt'打印堆栈并继续执行。

你应该给main.cpp另外设一个断点:500来退出调试。

b 'main.cpp::500'
commands 1
    detach
    quit
end

break 'A::f1()'
break 'A::f2()'
while true
continue
bt
end



您可以像这样启动脚本:

gdb --command ./gdbscript.gdb fpmanager 

如果你有太多可能被调用的函数,你可以grep代码来查找所有函数。