2010-05-01 374 views
1

我的Visual C++應用程序使用/ EHA選項編譯,讓我捕獲結構化異常(除以零,訪問衝突等)。然後,我使用_set_se_translator()將這些異常轉換爲我自己的異常類。我的目標是改進對這些類型例外的記錄。獲取有關結構化異常的詳細信息

我可以從EXCEPTION_RECORD結構中獲取異常的類型和異常地址。我希望能夠收集更多信息,例如引發異常的源文件/位置,調用堆棧等。這可能嗎?

我確實在結構化異常上創建了一個異常小型轉儲 - 是否有一種工具可以自動從中獲取調用堆棧?

回答

0

我的一個想法是在一些不同的線程中使用不同的翻譯器函數(每個線程有一個翻譯器函數),所以我可以知道從哪個線程拋出了結構化的異常。

這不太實際,因爲你不能傳遞任何參數給翻譯器函數,所以你需要一堆不同的翻譯器函數。