您遇到某些情况,您希望打印应用程序活动,例如您已获得源代码的情况,并希望获得调用的方法集,变量初始化以及任何活动。程序。什么是获得堆栈跟踪的最佳建议和实用工具,还有应用程序活动的直通报告?
答案 0 :(得分:1)
你问题的第一句话太长,我无法理解;我不能完全解析它,我只想猜你想问什么。
适用于此类事物的工具称为debugger。细节是构建链,即特定于实现。我使用GCC专注于Linux工具。
在Linux上,您将使用g++ -Wall -Wextra -g3
(或仅g++ -Wall -g
)进行编译,并使用gdb
作为调试器。也许你想要watchpoints。
gdb
的最新版本在Python中甚至在extensible中都是可编写脚本的(或Guile)。因此,如果您的系统gdb
太旧而无法扩展,那么从其downloaded源代码构建最近的gdb
可能是值得的。
如果您的问题与您的计划对其当前continuation或call stack或stack trace(或其他reflection类似活动)的程序性内省有关,则不是在标准 C ++ 11中很容易实现,但你可以考虑GNU glibc的backtracing functions或者在GCC中使用Ian Taylor的libbacktrace
或者return address related builtins海湾合作委员会。
您可能还想使用一些profiler(perf
,oprofile
,gprof
)...