如果抛出异常,我想有一种方法向用户报告堆栈跟踪.做这个的最好方式是什么?是否需要大量额外的代码?
I want to have a way to report the stack trace to the user if an exception is thrown. What is the best way to do this? Does it take huge amounts of extra code?
回答问题:
如果可能的话,我希望它是便携的.我希望弹出信息,以便用户可以复制堆栈跟踪,并在出现错误时通过电子邮件将其发送给我.
I'd like it to be portable if possible. I want information to pop up, so the user can copy the stack trace and email it to me if an error comes up.
这取决于哪个平台.
在 GCC 上,这非常简单,请参阅 这篇文章了解更多详情.
On GCC it's pretty trivial, see this post for more details.
在 MSVC 上,您可以使用 StackWalker 库来处理所有Windows 所需的底层 API 调用.
On MSVC then you can use the StackWalker library that handles all of the underlying API calls needed for Windows.
您必须找出将此功能集成到您的应用程序中的最佳方式,但您需要编写的代码量应该最少.
You'll have to figure out the best way to integrate this functionality into your app, but the amount of code you need to write should be minimal.
这篇关于C++ 在异常时显示堆栈跟踪的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
当没有异常时,C++ 异常会以何种方式减慢代码速In what ways do C++ exceptions slow down code when there are no exceptions thown?(当没有异常时,C++ 异常会以何种方式减慢代码速度?)
为什么要捕获异常作为对 const 的引用?Why catch an exception as reference-to-const?(为什么要捕获异常作为对 const 的引用?)
我应该何时以及如何使用异常处理?When and how should I use exception handling?(我应该何时以及如何使用异常处理?)
C++中异常对象的范围Scope of exception object in C++(C++中异常对象的范围)
从构造函数的初始化列表中捕获异常Catching exceptions from a constructor#39;s initializer list(从构造函数的初始化列表中捕获异常)
C++03 throw() 说明符 C++11 noexcept 之间的区别Difference between C++03 throw() specifier C++11 noexcept(C++03 throw() 说明符 C++11 noexcept 之间的区别)