簡體   English   中英

在C ++異常中獲取堆棧跟蹤

[英]Getting a stack trace in C++ exceptions

在Java / C#異常中提供堆棧/函數跟蹤的事實非常有用。 有沒有方便的方法在C ++中執行此操作,還是我必須將額外的數據烘焙到每個方法/函數中?

大多數調試器都可以設置為每次拋出異常時暫停程序(任何異常或沒有處理程序的異常),以便您可以監視調用堆棧。

此外,如果您的代碼僅拋出您控制的類的異常,則可以將代碼轉儲到這些類構造函數中的調用堆棧

如果您正在考慮將metdata添加到異常中,可以考慮使用boost異常處理 boost :: exception允許在拋出異常后向其添加信息。

一些OS API提供了堆棧跟蹤,我知道Windows API具有StackWalk64或類似的東西可以執行堆棧跟蹤。

但是,如果你不能依賴這樣的東西,那么你可以做的就是運送調試版本,或者手動完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM