如何获取堆栈跟踪以及在C ++中初始化变量?

时间:2015-07-11 13:56:50

标签: c++

您遇到某些情况,您希望打印应用程序活动,例如您已获得源代码的情况,并希望获得调用的方法集,变量初始化以及任何活动。程序。什么是获得堆栈跟踪的最佳建议和实用工具,还有应用程序活动的直通报告?

1 个答案:

答案 0 :(得分:1)

你问题的第一句话太长,我无法理解;我不能完全解析它,我只想猜你想问什么。

适用于此类事物的工具称为debugger。细节是构建链,即特定于实现。我使用GCC专注于Linux工具。

在Linux上,您将使用g++ -Wall -Wextra -g3(或仅g++ -Wall -g)进行编译,并使用gdb作为调试器。也许你想要watchpoints

gdb的最新版本在Python中甚至在extensible中都是可编写脚本的(或Guile)。因此,如果您的系统gdb太旧而无法扩展,那么从其downloaded源代码构建最近的gdb可能是值得的。

如果您的问题与您的计划对其当前continuationcall stackstack trace(或其他reflection类似活动)的程序性内省有关,则不是在标准 C ++ 11中很容易实现,但你可以考虑GNU glibc的backtracing functions或者在GCC中使用Ian Taylor的libbacktrace或者return address related builtins海湾合作委员会。

您可能还想使用一些profilerperfoprofilegprof)...