我在遠程(客戶端)有一個VC++ exe。他們repoterd崩潰已經發生。如何識別問題原因,而不使用源代碼,我想只使用.pdb文件分析.Please告訴我如何使用.pdb文件進行調試。在vC++中調試
在vC++中調試
回答
第一步得到使用的WinDbg或DebugDiag資料
請客戶檢查是否正常安裝任何的上述工具並獲得轉儲崩潰轉儲。
要求客戶發送崩潰的特定exe文件,你說的崩潰崩潰。
接下來使用正確的pdb在您的機器上使用windbg或debugdiag分析轉儲文件。
請告知是否需要更多信息。 在windbg或debugdiag本身的幫助文件中給出了分析轉儲的最小幫助。
您也可以在Visual Studio中打開轉儲文件和小型轉儲文件(打開Open Project ...並指向dmp文件)。如果您有正確編制索引的pdb文件,則通常可以獲得正確的調用堆棧將指示您發生錯誤的位置。
您還應該查看Windows錯誤報告。如果這是商用軟件,我建議您在部署之前對二進制文件進行簽名。然後,您可以要求客戶通過標準的Windows錯誤報告服務向Microsoft提交錯誤。
另一方面,您可以註冊他們的WER門戶網站,並使用您用二進制文件簽名的證書來標識自己。從門戶網站您可以獲得錯誤統計信息並下載特定的轉儲文件。
如果軟件在隔離的環境 - 私有域中運行,則可以在活動目錄中推出自定義全局策略,該策略將WER配置爲將轉儲文件提交到開發人員可收集域中的特定Windows共享他們。
希望這有助於
--larsw
已經在我的系統中安裝了Windbg,並且我還有發佈模式下的.pdb文件現在我試圖通過windbg加載.pdb文件但我得到一個錯誤說「Win32錯誤0n87參數不正確」 – user443088 2010-09-09 07:06:36
這裏是最初的步驟如下:
在客戶機:
一個。安裝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/
- 1. VC++ 2013調試器凍結
- 2. 如何調試VC++的Dll
- 3. 調試時VC++ 2015 IDE中的錯誤?
- 4. 調試版本中的VC++錯誤C2065
- 5. 在Visual Studio調試VC++ 6項目10
- 6. 調試從C#調用VC++ 6 DLL#
- 7. 在VC++中調用C++ dll
- 8. Windows MS上的CRT堆調試VC++ 2005
- 9. 調試信息找不到vC++ dll
- 10. 病毒而MS VC建立調試2010
- 11. 使用堆調試MS VC++ 2005
- 12. Visual Studio(VC++ 2005)調試內存
- 13. 單步VC++ 2010調試器從MATLAB
- 14. 調用功能,而在VC++(立即窗口)調試模式
- 15. 在命令行中調試VC++應用程序
- 16. 在VC++中調試後發生了什麼事情
- 17. 在VC++中使用獨立的Lib進行調試和發佈
- 18. 爲什麼strlen()在VC++調試器中返回<void>?
- 19. 讓VC調試器在堆棧溢出中顯示更多幀
- 20. 在VC++中調試發佈模式二進制文件
- 21. 如何調試在VS2008中用VC++編寫的Windows服務?
- 22. 如何調試VC++程序,輸入文件在調試時未打開
- 23. 堆調試:斷言在dbgdel在MS VC++ 2005
- 24. 在VC++中調整圖像大小
- 25. 如何讓VC++的調試程序中斷異常?
- 26. VC++ 2008 Express中缺少「多線程調試」功能?
- 27. 不能在沒有調試的情況下運行VC++程序
- 28. VC++ 2012在x86 Windows XP機器上進行遠程調試
- 29. 將VC++調試器掛接到正在運行的DLL上
- 30. 如何在這種情況下附加VC++調試器(或gdb)?
我已經在我的系統安裝WinDBG的,也是我在釋放模式.pdb文件,現在我想通過WinDbg中加載.pdb文件,但我得到一個錯誤說「Win32錯誤0n87參數不正確」。 – user443088 2010-09-09 07:05:55
沒有嘗試加載pdb。而是點擊windbg中的File並選擇Open Crash dump並加載crashdump。這是你需要分析的東西。在符號路徑的文件菜單中給出您的pdb所在的位置並重新加載轉儲。 – ckv 2010-09-09 07:23:10
您嘗試加載的轉儲文件有多大? AFAIK錯誤0n87可能是由於轉儲文件太大(例如,您的內存太少而無法處理它)。 – larsw 2010-09-09 07:49:34