【问题标题】:Get functions called with GDB获取使用 GDB 调用的函数
【发布时间】:2011-02-15 09:08:30
【问题描述】:

我正在使用 GDB 来理解 C++ 程序。我在跑步中间休息了一下,结果是这样的:

打破 main.cpp:500

我想看看之前调用了哪些函数。我尝试了“回溯”,但它只显示有关 main 的信息,因为之前对之前函数的调用已经完成。

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

谢谢

【问题讨论】:

  • 您可能需要一个分析器 - 看看 gprof。

标签: gdb


【解决方案1】:

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

创建一个脚本,为每个可能调用的函数设置断点。 在 break 用 'bt' 打印堆栈并继续执行。

您应该在 main.cpp:500 中放置另一个断点以退出调试。

b'main.cpp::500' 命令 1 分离 放弃 结尾 打破'A::f1()' 打破'A::f2()' 虽然是真的 继续 BT 结尾

你可以这样启动脚本:

gdb --command ./gdbscript.gdb fpmanager

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2012-02-29
    • 2012-01-24
    • 1970-01-01
    相关资源
    最近更新 更多