【发布时间】:2011-01-17 21:54:37
【问题描述】:
我有一个必须调查的第 3 方源代码。我想看看函数的调用顺序,但我不想浪费时间打字:
printf("Entered into %s", __FUNCTION__)
和
printf("Exited from %s", __FUNCTION__)
对于每个函数,我也不想接触任何源文件。
你有什么建议吗?是否有一个编译器标志可以自动为我执行此操作?
对cmets的澄清:
- 我将交叉编译源代码以在 ARM 上运行它。
- 我会用 gcc 编译它。
- 我不想分析静态代码。我想跟踪运行时。所以 doxygen 不会让我的生活更轻松。
- 我有源码,可以编译。
- 我不想使用面向方面的编程。
编辑: 我发现 gdb 提示符中的“frame”命令会在那个时间点打印当前帧(或者,你可以说是函数名)。也许,每次调用函数时都可以(使用 gdb 脚本)调用“框架”命令。你怎么看?
【问题讨论】:
-
@bmm:你有可以实际编译的第三方源码吗?
-
这听起来像是在运行时向代码中注入了一些东西——AOP...
-
这篇文章可能对linuxseekernel.blogspot.com/2013/10/…有帮助
标签: c++ c debugging logging compiler-construction