gpt4 book ai didi

c++ - 如何在 Linux 下打印 C++ 程序中调用的函数?

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:51 26 4
gpt4 key购买 nike

我想要的是可以通过静态代码分析(如 Doxygen)和使用 GDB 时可以看到的堆栈框架获得的内容的组合。我知道我正在调试哪个有问题的函数,并且我想查看将执行引导到此函数调用的函数调用的邻域。例如,运行一个简单的 HelloWorld!会输出如下内容:

main:
Greeter::Greeter()
Greeter::printHello()
Greeter::printWorld()

表示从主函数调用构造函数,然后调用 printHello 和 printWorld 函数。请注意,在 GDB 中,如果我在 printWorld 中断,我将无法在调用了 printHello 的堆栈框架中看到。

关于如何在不经历在无数源文件中插入日志消息的痛苦的情况下跟踪函数调用的任何想法?

谢谢!!

最佳答案

-finstrument-functions option gcc 指示编译器在每个函数进入和退出时调用用户提供的分析函数。

您可以使用它来编写一个只记录每个函数进入和退出的函数。

关于c++ - 如何在 Linux 下打印 C++ 程序中调用的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com