一、什麼是Dump文件 Dump文件又叫記憶體轉儲文件或者叫記憶體快照文件,是進程的記憶體鏡像。在進程崩潰時或進程有其他問題時,甚至是任何時候,我們都可以通過工具抓取系統或某進程的dump供調試分析用。dump文件中包含了程式運行的模塊信息、線程信息、堆棧調用信息、異常信息等數據。當我們的應用程式發佈出去 ...
一、什麼是Dump文件
Dump文件又叫記憶體轉儲文件或者叫記憶體快照文件,是進程的記憶體鏡像。在進程崩潰時或進程有其他問題時,甚至是任何時候,我們都可以通過工具抓取系統或某進程的dump供調試分析用。dump文件中包含了程式運行的模塊信息、線程信息、堆棧調用信息、異常信息等數據。當我們的應用程式發佈出去,在客戶機上出線了問題(崩潰、失去響應、資源消耗過高,性能不理想),由於這些問題不是發生在開發環境下的,這時我們就需要在客戶機上想辦法抓取dmp文件,拿回來進行分析。windows系統自己出了問題,比如藍屏了,這時系統會自動產生dump文件,被微軟收集分析。
二、Dump文件的分類
1、內核模式 Kernel-Mode DUMP:操作系統創建的崩潰轉儲,最經典的就是系統藍屏
2、用戶模式 User-Mode DUMP :
Full Dump:某個進程完整的地址空間數據,以及許多用於調試的信息
Mini Dump:某個線程和部分模塊的信息
三、抓取Dump的方式
1、修改註冊表來自動生成Dump文件
在註冊表 電腦\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps 下,添加如下信息
其中DumpType代表的含義是:
0 = Create a custom dump
1 = Mini dump
2 = Full dump
一旦某個程式崩潰,系統會在C:\CrashDump下生成一個dump文件。
2、任務管理器創建轉儲文件
3、使用VS進行另存轉儲文件
調試->附加進程->暫停按鈕(全部中斷)->調試->將轉儲另存為...
4、Windbg
File->Attach to Process->等待進程出現異常->輸入命令.dump /f d:\111.dmp另存轉儲文件
5、還有很多種方式例如:procdump,DebugDia
,AdPlus
,gflags
等抓取Dump,就不一一介紹了,如果對哪個工具感興趣,請自行研究。