2010-08-23 37 views

回答

3

你在说什么是Stack Trace

堆栈跟踪的定义:

堆栈跟踪是一种有用的调试工具 ,你会通常需要 优势,当一个例外 被扔的。它提供关于 当前线程的执行历史的信息 ,在 之间显示 这些类中的类和方法的名称 ,这些类在发生异常时被调用。

这个SO问题"How can one grab a stack trace in C?"有你需要的答案。

+1

1此分析日志,但值得注意的是,C++不用于提供任何特征或担保有关堆栈检查机制便携式可用性 – 2010-08-23 01:25:49

+0

@Tony:谢谢你的澄清。 – 2010-08-23 01:41:29

+0

而且它可能仅仅在具有符号信息的构建中简单地工作。如果它是一个没有符号信息的发布版本,它会花费更多的精力 – Chubsdad 2010-08-23 02:27:50

1

一种更简单和更通用的方法将是如下:

a)使输出追查基于运行时间条件(例如,特定的环境变量)/调试开关

b)中登录的条目,并每个函数的退出以及线程ID(以处理多线程应用程序)。为此,请使用__FILE__ and __LINE__预处理器指令。

c)使用一个良好的LogViewer应用(例如DebugView中在Windows)

相关问题