[英]How to get exception trace stack with C++ in VS2017
雖然不是您問題的直接答案,但我想指出,您可以以跨平台的方式獲得很好的回溯,僅使用標准 C++11 ,無需調試器或繁瑣的日志記錄:
std::nested_exception
和std::throw_with_nested
在此處和此處的StackOverflow 上進行了描述,您可以通過簡單地編寫將重新拋出嵌套異常的適當異常處理程序來獲取代碼中異常的回溯。 但是,它要求您在要跟蹤的函數中插入try/catch
語句。
由於您可以使用任何派生的異常類來執行此操作,因此您可以向此類回溯添加大量信息! 您還可以查看我在 GitHub 上的 MWE或我的“跟蹤”庫,其中的回溯如下所示:
Library API: Exception caught in function 'api_function'
Backtrace:
~/Git/mwe-cpp-exception/src/detail/Library.cpp:17 : library_function failed
~/Git/mwe-cpp-exception/src/detail/Library.cpp:13 : could not open file "nonexistent.txt"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.