我想要的是通过 Doxygen 等静态代码分析获得的内容和使用 GDB 时可以看到的堆栈帧的组合。我知道我正在调试哪个有问题的函数,并且我想查看引导执行该函数调用的函数调用的邻域。例如,运行一个简单的 HelloWorld!会输出类似:
main:
Greeter::Greeter()
Greeter::printHello()
Greeter::printWorld()
表示从主函数中调用了构造函数,然后调用了 printHello 和 printWorld 函数。请注意,在 GDB 中,如果我在 printWorld 处中断,我将无法在堆栈帧中看到 printHello 被调用。
关于如何跟踪函数调用而不经历在无数源文件中插入日志消息的痛苦,有什么想法吗?
谢谢!!
最佳答案
-finstrument-functions
option to gcc
指示编译器在每次函数进入和退出时调用用户提供的分析函数。
您可以使用它来编写一个仅记录每个函数进入和退出的函数。
关于c++ - 如何打印 Linux 下 C++ 程序中调用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749074/