2010-09-09 48 views
1

我在遠程(客戶端)有一個VC++ exe。他們repoterd崩潰已經發生。如何識別問題原因,而不使用源代碼,我想只使用.pdb文件分析.Please告訴我如何使用.pdb文件進行調試。在vC++中調試

回答

0

第一步得到使用的WinDbg或DebugDiag資料

請客戶檢查是否正常安裝任何的上述工具並獲得轉儲崩潰轉儲。

要求客戶發送崩潰的特定exe文件,你說的崩潰崩潰。

接下來使用正確的pdb在您的機器上使用windbg或debugdiag分析轉儲文件。

請告知是否需要更多信息。 在windbg或debugdiag本身的幫助文件中給出了分析轉儲的最小幫助。

+0

我已經在我的系統安裝WinDBG的,也是我在釋放模式.pdb文件,現在我想通過WinDbg中加載.pdb文件,但我得到一個錯誤說「Win32錯誤0n87參數不正確」。 – user443088 2010-09-09 07:05:55

+0

沒有嘗試加載pdb。而是點擊windbg中的File並選擇Open Crash dump並加載crashdump。這是你需要分析的東西。在符號路徑的文件菜單中給出您的pdb所在的位置並重新加載轉儲。 – ckv 2010-09-09 07:23:10

+0

您嘗試加載的轉儲文件有多大? AFAIK錯誤0n87可能是由於轉儲文件太大(例如,您的內存太少而無法處理它)。 – larsw 2010-09-09 07:49:34

0

您也可以在Visual Studio中打開轉儲文件和小型轉儲文件(打開Open Project ...並指向dmp文件)。如果您有正確編制索引的pdb文件,則通常可以獲得正確的調用堆棧將指示您發生錯誤的位置。

您還應該查看Windows錯誤報告。如果這是商用軟件,我建議您在部署之前對二進制文件進行簽名。然後,您可以要求客戶通過標準的Windows錯誤報告服務向Microsoft提交錯誤。

另一方面,您可以註冊他們的WER門戶網站,並使用您用二進制文件簽名的證書來標識自己。從門戶網站您可以獲得錯誤統計信息並下載特定的轉儲文件。

如果軟件在隔離的環境 - 私有域中運行,則可以在活動目錄中推出自定義全局策略,該策略將WER配置爲將轉儲文件提交到開發人員可收集域中的特定Windows共享他們。

希望這有助於

--larsw

+0

已經在我的系統中安裝了Windbg,並且我還有發佈模式下的.pdb文件現在我試圖通過windbg加載.pdb文件但我得到一個錯誤說「Win32錯誤0n87參數不正確」 – user443088 2010-09-09 07:06:36

0

這裏是最初的步驟如下:

在客戶機:

一個。安裝windbg。這可以從微軟網站下載。 b。一旦安裝,註冊即時調試器[windbg -l]。
c。執行導致崩潰的應用程序。 d。發生碰撞時,防風罩會自動打開。 e。保存轉儲文件。

在你的機器:

一個。使用windbg打開故障轉儲。 b。用windbg在你的機器上設置pdb文件和源文件。
c。您可以使用Visual Studio中的項目屬性生成pdb。

更多細節我發現:http://kmdarshan.com/blog/2011/06/29/windows-debugging-using-windbg/