如何使用 Dump 文件?
引言
本文概述了使用 WinDbg 的一些必要步驟。
準備工作
第一步,你必須更改系統的配置使其能夠生成 PDB 文件,包括 Release 版本。近期的 Visual C++ 編譯器默認啟用此配置,但早期某些版本編譯器需要你手動開啟此選項。保留每個版本的 PDB 文件,這很重要!
第二步,你必須確定生成 dump 文件的應用程序版本。當你自己生成了 MiniDumps(比如通過調用 MiniDumpWriteDump())的時候,最好在 MiniDump 的文件名里加上應用程序的完整版本號。當然,這需要有一個完善的版本控制機制,比如任何分支的任何編譯都會更新版本號。
現在假設你已經獲取了 dump 文件,你準確地知道生成 dump 文件的應用程序版本,以及該版本的 PDB 文件。
第三步,在你的代碼庫歷史記錄中找到該版本的源代碼,放在一個單獨目錄。
開始調試
現在你可以選擇使用 WinDbg 或者 Visual C++ 來調試 dump 文件了。使用 Visual Studio 更加簡單,但是 WinDbg 更加強大。大多數情況下 Visual Studio 的功能已經能夠滿足需求了。
如果使用 Visual Studio,你需要在 Visual Studio 中添加文件的方式打開 dump 文件:
然后 debug dump 文件。如果所有的路徑(源代碼和 PDB 文件)都配置正確,那么你就能夠調試到 crash 的地方,查看 call stack 等內容。
如果使用 WinDbg,你需要:
打開 WinDbg 工具
打開 dump 文件(默認是 Ctrl + D)
告訴 WinDbg 加載正確的 MicroSoft symbol 文件,命令:.symfix,這個過程可能需要一些時間
告訴 WinDbg 加載 程序的 PDB 文件,命令:.sympath+ c:pdblocation,將 "c:pdblocation" 替換為你自己的 PDB 路徑。注意 .sympath 和 + 之間不要有空格,否則可能會破壞步驟 3. 中的工作。
告訴 WinDbg 源代碼的位置,命令:.srcpath c:app_build_1.0.100,將 "c:app_build_1.0.100" 替換為你自己的源代碼路徑。
告訴 WinDbg 可以開始分析 dump 文件了,命令:!analyze -v。
如果所有配置都是正確的,那么后面 WinDbg 就會運行到 crash 的位置,之后你就可以對應用程序進行深入分析,這部分內容不在本文討論范圍之內。
引用
https://stackoverflow.com/questions/734272/how-to-use-windbg-to-analyze-the-crash-dump-for-vc-application
總結
以上是生活随笔為你收集整理的如何使用 Dump 文件?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis中 SIMPLE、REUS
- 下一篇: 招行e分期还款支付宝可以还吗?这份还款攻