2010-09-23 73 views
1

我有一個Windows C++應用程序不時在用戶計算機上崩潰。我沒有寫應用程序,它沒有自己的日誌記錄。是否有我可以使用的工具/實用程序,可以在應用程序退出時記錄一些有用的信息(例如發生崩潰的文件和行號)?最終用戶的組件沒有Visual Studio。Windows C++應用程序崩潰

+0

您可能根本沒有任何訪問應用程序的來源或構建過程,是嗎? – 2010-09-23 08:50:09

回答

4

當碰撞發生文件和行號」

這將有可能只有如果代碼用調試信息包括在內。如果您的用戶準備安裝VC++ Express,那麼他們可以在崩潰後使用其調試器附加到進程,但是沒有源代碼,他們只會看到彙編代碼,並且在任何情況下都沒有調試信息,這些信息可能有限。

0

您可以使用BugTrap捕獲未處理的異常並通過電子郵件或其他方式報告它們。該設置非常簡單。唯一的困難是正確設置小型轉儲器的* .pdb * .dll * .exe。

+0

這是否沒有用調試信息構建應用程序? – 2010-09-23 12:37:51

+0

它確實,但你不會能夠使用Minidump。您仍然可以使用Crash Explorer來獲取沒有詳細信息的堆棧跟蹤。 – Wernight 2010-09-23 12:41:26

0

通過向程序添加轉儲生成,您可以使用驗屍調試。崩潰轉儲由MiniDumpWriteDump函數創建。該轉儲可以發送到開發人員計算機並進行調試。更多關於此這裏:

http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx

+0

但是,這隻有在您的應用程序已包含調試信息的情況下才有可能? – 2010-09-23 12:34:12

+0

應用程序必須使用調試信息構建,但.pdb文件不會分發到目標計算機。有必要爲每個發佈的版本保留.pdb文件,並在必要時使用它們進行事後調試。 – 2010-09-23 12:37:10