DMP檔案的生成和使用

2021-07-13 15:59:09 字數 1424 閱讀 7765

1、生成dmp的程式

//異常處理**

//exception_execute_handler equ 1 表示我已經處理了異常,可以優雅地結束了 

//exception_continue_search equ 0 表示我不處理,其他人來吧,於是windows呼叫預設的處理程式顯示乙個錯誤框,並結束 

//exception_continue_execution equ -1 表示錯誤已經被修復,請從異常發生處繼續執行 

#include
#include #include #include #pragma comment(lib,  "dbghelp.lib")

setunhandledexceptionfilter(unhandledexceptionfilter);

long winapi unhandledexceptionfilterbb(struct _exception_pointers* exceptioninfo)

; strftime(chtime,50,"%y-%m-%d %h:%m:%s", pcur);

strcat(chtime,".dmp");

handle hfile = createfile(chtime, generic_write, file_share_write, null, create_always,file_attribute_normal, null );

if (hfile!=invalid_handle_value)

return exception_execute_handler;

}

2、除錯dump檔案

1)用windbg。

2)用vc,把dmp檔案和exe, pdb檔案放在同一目錄下, 然後用編譯器(如vc)開啟, 然後開始除錯就會中斷到剛才中斷的地方.

3、以下是網上蒐集到的條件,尚未驗證是否是必需的,如果不能正確的生成dmp,可嘗試以下方法

1)setunhandledexceptionfilter()並不能處理所有的異常,比如crt異常需要呼叫_set_invalid_parameter_handler()才行

1)要設定c執行庫異常處理函授。這樣當出錯後,會引發你的異常處理,你的處理中,可以直接丟掉或重新啟動你的exe,或寫入log檔案。

2)注意生成的release應用程式需要開啟「生成除錯資訊」選項。

2)使用vs2008的話,不需要開啟「生成除錯資訊」選項就可以生成的。

3)編譯release版本的時候同時生成map檔案,具體可以在網上查詢一下關於map檔案的使用方法。

3)生成可執行檔案時在工程屬性設定裡的「除錯」選項裡將「生成對映檔案」設定為「是」。這主要是用來在出錯時通過dump和map檔案對錯誤定位

DMP檔案的生成和使用

來自 1.minidump.h include include include pragma comment lib,dbghelp.lib long winapi myunhandledfilter struct exception pointers lpexceptioninfo else cl...

DMP檔案的生成和使用

1 生成dmp的程式 1 用windbg。2 用vc,把dmp檔案和exe,pdb檔案放在同一目錄下,然後用編譯器 如vc 開啟,然後開始除錯就會中斷到剛才中斷的地方.3 以下是網上蒐集到的條件,尚未驗證是否是必需的,如果不能正確的生成dmp,可嘗試以下方法 1 setunhandledexcept...

qt creator 如何生成dmp檔案

一 說明 程式崩潰時產生dmp檔案 路徑 dmp 檔案中 名稱 為yyyy mm dd hh mm ss.bmp vs 可以開啟檢視內容 二 使用方法 1 pro檔案中增加 libs ldbghelp 2 main檔案中包含該標頭檔案 3 在main函式體內,註冊異常捕獲函式 ifdef q os ...