首頁 > 後端開發 > C++ > 如何有效捕捉和顯示 C 異常的堆疊追蹤?

如何有效捕捉和顯示 C 異常的堆疊追蹤?

Mary-Kate Olsen
發布: 2024-12-27 08:40:11
原創
899 人瀏覽過

How Can I Effectively Capture and Display Stack Traces for C   Exceptions?

如何在異常期間捕獲和顯示堆疊追蹤

為了向用戶提供有關異常原因的信息,捕獲和顯示堆疊追蹤至關重要。然而,找到最有效的方法可能具有挑戰性。

便攜式堆疊追蹤報告

Andrew Grant 的響應並不能幫助獲取拋出異常的函數的堆疊跟踪,因為單獨的throw 語句不會記錄當前的堆棧跟踪。因此,在 catch 處理程序中存取堆疊追蹤變得不可能。

GCC 特定方法

要使用 GCC 解決此問題,必須在拋出指令的點並與異常物件一起保存。但是,此方法要求每個拋出異常的程式碼都使用相同的 Exception 類別。

外部函式庫

要取得更靈活的解決方案,請考慮以下函式庫:

  • stacktrace.sourceforge.net : 一個綜合庫,提供堆疊追蹤資訊。
  • C 23 C 23 標準即將新增的內容。
  • boost stacktrace: 一個強大且可靠的版本便攜的函式庫。
  • backward-cpp: 一個多功能且功能豐富的函式庫。
  • cpptrace: 一個輕量級且可移植的庫,支援 C 11。

最新更新

除了上面提到的庫之外,請注意以下內容:

  • P2490 : C 26 的提案,旨在引入[[with_stacktrace]]和std::stacktrace::from_current_exception.
  • cpptrace: 它的 C 11 實作允許從捕獲的異常中檢索堆疊追蹤。

以上是如何有效捕捉和顯示 C 異常的堆疊追蹤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板