程式崩潰(crash)的時候,可以使用windbg把當時程式記憶體空間資料都儲存下來,生成的檔案稱為dump 檔案。 步驟:
1)檢視任務管理器,崩潰的程序還在。判定可以用windbg截獲dump
2) 開啟windbg, file--attach to a process,選擇崩潰程序如test.exe;
3) 輸入產生dump檔案的命令, 如.dump /mf d:/test.dmp, 可以選擇不同的引數來生成不同型別的dump檔案。
4) 確認提取成功:檢視在d盤根目錄下是否有test.dmp檔案。
分析崩潰原因
1. 開啟windbg,file--open crash dump ,開啟dump檔案test.dmp
2. 檢視崩潰檔案版本:使用lm v m test* 獲得崩潰程序檔案test.exe檔案資訊
3. 載入對應符號pdb,找到對應的pdb檔案,選擇file--symble file path 將pdb檔案路徑加入
4. ~*k 檢視所有執行緒的堆疊
5. 找到應用程式與系統程式的臨界點開始分析
6. dd 0017e2c8 dd (dd表示以四個位元組的方式檢視ebp資訊。)
7. db 0017e314 (db以位元組的方式檢視引數內容)
8. db (db繼續顯示,使內容顯示完全)
vista 上如何在程式崩潰時自動儲存dump檔案
ntsd 是 windbg包裡的乙個檔案. 我的經驗, 這個windbg包不需要安裝, 直接解壓即可使用.
登錄檔項:
下得手工新添兩個:
這兩個健都是字串型別, 其中第二個指定偵錯程式
linux下 c程式崩潰時產生core檔案的設定
c程式執行崩潰時,如果能夠自動產生core檔案,會對問題的分析和定位有一定的幫助,但是需要一定的設定才可以開啟該選項 如果程式本身有問題,在崩潰時,可能會產生core檔案 注意 不是一定會產生的 產生的core檔案預設是在執行檔案的目錄下,但也可以指定 修改 etc security limits....
Linux下的C 程式崩潰時列印崩潰資訊
在某些極端情況下,原本正常執行的程式發生了崩潰。這時候想通過除錯是很難發現出錯的地方的,所以在崩潰時列印出錯點的呼叫堆疊是十分有必要的。使用的命令 catchsegv program args 例如 我們的程式是test,則可在控制台輸入 catchsegv test 如果使用gcc g 編譯tes...
C 記錄程式崩潰時的dumpfile
新上線的軟體在外場偶爾會出現異常崩潰的情況。由於試用範圍比較分散,很難一一前往現場定位問題。而傳統的log日誌方法,在崩潰的情況下,並不能比較準確的表示出問題位置,這使得軟體除錯程序緩慢。後在公司前輩的指點下,我們想到了使用window自帶的dumpfile來記錄崩潰時刻的堆疊資訊,這樣配合log日...