在 C++ 异常中获取堆栈跟踪

3

在Java/C#异常中提供堆栈/函数跟踪信息是非常有用的。 在C ++中是否有一个方便的方法来实现这一点,还是我必须在每个方法/函数中添加额外的数据?


重复问题??:https://dev59.com/YXA75IYBdhLWcg3wkZ-A - bcsanches
3个回答

1

这是用于在程序错误发生时进行日志记录,而不是在调试过程中。 - Mr. Boy
@John:第二段是关于这个的 - 实际上我链接的整个问题都是关于这个的。 - sharptooth
我认为问题是“异常类的构造函数中应该包含什么代码以获取堆栈跟踪信息?” - Mr. Boy
@John:那将取决于平台。 - sharptooth

0
如果您正在考虑为异常添加元数据,可以考虑使用boost exception handling。boost::exception允许在抛出异常后向其添加信息。

0
一些操作系统API提供堆栈跟踪功能,我知道Windows API有StackWalk64或类似的函数可以进行堆栈跟踪。
然而,如果您不能依赖这样的功能,那么您只能运行调试版本或手动进行堆栈跟踪。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接