vs2008 dump檔案除錯
引自 南海之星
用vs2008分析dump檔案
- 雙擊minidump檔案(*.dmp)。預設會啟動vs2008。
- 選單Tools/Options, Debugging/Symbols,增加PDB檔案路徑。注:如果minidump檔案與pdb檔案在同一目錄,就不用設定這個了。
- 若除錯的程式需要微軟基礎庫的PDB資訊,可以增加一個路徑為:
- 在介面下方Cache Symbol From symbol…選擇本地儲存這些Symbols的路徑。 注:如果本地已儲存過微軟基礎庫的pdb,就直接按照此步操作設定本地路徑,不必執行上一步操作了。
設定程式碼路徑:
剛開啟的dmp工程,進入解決方案的屬性。在這裡輸入源程式的程式碼路徑。注:一定是sln所在的路徑,而不是vcproj的路徑!
按F5,debug吧。
//
PS:或者可以這樣載入符號路徑,如果沒有載入本應用程式的符號表,可以在載入模組裡面修改符號表的路徑.(也是彈出選單Tools/Options, Debugging/Symbols)
*************************************************
引自
似水流年
附:常見問題討論1、 Dump檔案放在哪裡?
Dump檔案不用非要放在你編譯出來的位置,你完全可以建立一個新的資料夾來放它。但若不是存放在編譯出來的位置,需要將編譯生成的PDB檔案拷貝到Dump檔案目錄,或是利用VS2005(2008)開啟Dump檔案後,設定
2、如何恢復當時的現場?
可能你要問,怎麼可能,這個dump檔案可是使用者發給我的,我不可能去使用者家裡除錯吧?這個恢復現場可不是指的非要到那臺機器上去,而是要把產生dump檔案對應的二進位制檔案拿到。
但是恢復現場需要所有的二進位制檔案都要對應,你一定要有導致使用者崩潰的那些Exe和DLL。既然是你釋出的程式,Exe檔案當然你會有。所以這裡只考慮DLL就行了。
Dump檔案中記錄了所有DLL檔案的版本號和時間戳,所以你一定可以同過某種途徑拿到它。如果你能從使用者那裡拿到最好,如果不方便,使用者不可能用的是我們平常不常用的作業系統,所以找個有對應系統的機器一般都會有。但是記住不僅是檔名稱要一致,還要核對版本和時間戳,如果不同一樣沒有辦法用。
如果客戶用了某個特殊的補丁怎麼辦?
其實這個問題也很好解決,只要它不阻礙閱讀堆疊,就不用管它,除錯Dump和執行程式不一樣,缺少一兩個DLL沒有任何問題。
3、如果真的需要怎麼辦?
符號檔案現在主要是指PDB檔案。
如果沒有符號檔案,那麼除錯的時候可能導致堆疊錯誤。
如果你丟失了這個釋出版本中你編譯出來的那些exe和DLL的PDB,那麼這個損失是嚴重的,重新編譯出來的版本是不能使用的。
我自己的DLL都有了,可是缺的是系統的DLL的對應PDB檔案怎麼辦?上圖已經介紹了方法。微軟在它的符號資料庫上為我們提供了所有的PDB檔案,還有部分非關鍵DLL。設定好後程序將自動下載需要的PDB及DLL檔案。
4、拿到需要的檔案了,這些檔案應該放在哪裡?
符號資料庫中的檔案不用動,把其它的exe和DLL、PDB檔案放在dump檔案目錄裡就行了。
5、我用的是VS2005(2008),明明有原始碼,為什麼顯示不了?
這個是dump除錯的最頭痛問題,程式碼可能已經改過了,即使你從SVN拿到當時的版本,時間戳也是錯的,VS2005(2008)就是不讓你顯示程式碼。
其實只要在VS2005(2008)工具→選項→除錯→常規 中去掉 “要求原始檔與原始版本完全匹配”(Require source files to exactly match the original version) 的複選就行了。
相關推薦
vs2008 dump檔案除錯
引自 南海之星 用vs2008分析dump檔案 雙擊minidump檔案(*.dmp)。預設會啟動vs2008。選單Tools/Options, Debugging/Symbols,增加PDB檔案路徑。注:如果minidump檔案與pdb檔案在同一目錄,就不用設定這
利用VS2005進行dump檔案除錯
前言:利用drwtsn32或NTSD進行程式崩潰處理,都可以生成可用於除錯的dmp格式檔案。使用VS2005開啟生成的DMP檔案,能很方便的找出BUG所在位置。本文將討論以下內容: 1、程式編譯選項 2、利用VS2005 分析dump檔案 3、常見問題討論 一、程式編譯選項 PDB file
VS2008除錯Release程式--Dump檔案方式
在Windows平臺下用C++開發應用程式,最不想見到的情況恐怕就是程式崩潰,而要想解決引起問題的bug,最困難的應該就是除錯release版本了。因為release版本來就少了很多除錯資訊,更何況一般都是釋出出去由使用者使用,crash的現場很難保留和重現。目前有一些方法可以
VC++ 利用PDB和dump檔案定位問題並進行除錯
轉載:https://blog.csdn.net/zfs_kuai/article/details/43646665 轉載:https://blog.csdn.net/i_chaoren/article/details/81453142 一、什麼是PDB檔案 &
dotnet core除錯docker下生成的dump檔案
最近公司預生產環境的docker容器經常出現記憶體暴漲現象,有時會突然吃掉幾個G,觸發監控預警,造成容器重啟。 分析了各種可能原因,修復了可能發生的記憶體洩露,經測試本地正常,但是發到預生產還是會有記憶體暴漲現象,反而更改GC模式後記憶體使用保持較低水平,百思不得其解,所以想到使用除錯dump檔案方式來分析
vs除錯dump檔案注意事項
dump檔案, pdb檔案,exe檔案要確保是一套,我就是因為那這舊版本的dump檔案在新的exe上除錯,老是報錯也不知道為什麼,坑了一下午。 dump檔案,pdb檔案,exe檔案要確保在一個目錄下,
用VS2005(其他版本也可以)除錯dump檔案
雖然windbg也可以除錯,但是如果用VS除錯dump檔案會更方便,畢竟它有強大的反彙編檢視、變數、堆疊、記憶體檢視等非常好用的功能。 從【File】選單選擇開啟dmp檔案,會生成一個solution。 然後設定原始碼路徑:右鍵solution屬性,選擇Debug s
WINDBG除錯DUMP檔案
對於windows程式設計師來說,程式執行時藍屏是最鬱悶的事情,如何找到藍屏的原因則是首要解決的事情,好在微軟提供了一系列的方法,為我們除錯藍屏提供了便利。 首先要用的工具是windbg,可以到微軟的官方網站下載 http://msdl.microso
使用VS2012除錯Dump檔案
前一節我講了怎麼設定C++崩潰時生成Dump檔案 , 點選 傳送門 , 這一節我講講怎麼使用 VS2012 除錯生成的 Dump 檔案 , 甚至可以精確到出錯的那一行程式碼上面 ; 1. 生成 Dump 檔案 我在主函式寫了如下崩潰程式碼 : int
生成程式崩潰的dump檔案,使用windbg除錯
1,目的 有時候程式在客戶那裡崩潰了,你程式也沒有什麼有效的log日誌能記錄到崩潰的細節,那這實在是一件很麻煩的事情。 你得向客戶反覆瞭解操作內容並希望能在自己這裡重現,這個過程想想都很痛苦吧。。 使用下面的方法,能在程式崩潰時生成一個自己的dump檔案,記錄了崩潰時的一
自定義VS程式異常處理及除錯Dump檔案(一)
1. Dump檔案 1. Dump檔案介紹 Dump檔案(Dump File),也叫轉儲檔案,以.DMP為檔案字尾。dump檔案是程序在記憶體中的映象檔案,通過轉換然後儲存成以.DMP字尾的檔案。dump檔案根據儲存時的選項不同,會生成不同大小的檔案,其
linux core dump檔案生成和除錯
1.core dump檔案生成 project(coredumptest) cmake_minimum_required(VERSION 2.8) add_compile_options(-std=c++11 -pthread -g -ggdb -O
使用dbghelp生成dump檔案以及事後除錯分析
前言 在產品的實際應用環境中,如果我們的程式在客戶那裡出現了問題,例如程式異常了,而這個時候的現象又不能還原或者很難還原重現,那麼只有使用dump檔案來儲存程式的當前執行資訊,例如呼叫堆疊等,同時使用符號檔案來定位問題了;這裡主要講解使用dbghelp庫來生成輸出dump
【取證分析】用linux命令xxd來獲取dump檔案資訊獲得flag
題目連結:https://blog.csdn.net/xiangshangbashaonian/article/details/82747394 拿到一道CTF題目 notepad++開啟如下所示 [email protected]:~/Desktop$ fi
gdb中core檔案除錯
程式執行時,如果有錯誤,則會產生core檔案。 core檔案如何檢視錯誤 在Linux系統下,應用程式崩潰,一般會產生core檔案,如何根據core檔案查詢問題的所在,並做相應的分析和除錯,是非常重要的,本文對此做簡單介紹。 例如,一個程式cmm_test_tool在執行的時候發生了錯誤
windows程式崩潰時自動生成dump檔案方法
/****************第一步新增createdump.h********************************* 新增一個頭檔案:createdump.h #pragma once #include <windows.h> #inclu
gdb簡單指令以及core檔案除錯——Linux除錯基本技能
core檔案除錯步驟——直接定位段錯誤堆疊 1、ulimit -c unlimited設定core檔案無限制 2、echo “/root/core” > /proc/sys/kernel/core_pattern制定core檔案生成的路徑,注意路徑後要加上core 3、在本地執
Winows下程式崩潰自動建立Dump檔案以方便跟蹤問題
首先定義一個預設的異常處理回撥函式: LONG CrashHandler(struct_EXCEPTION_POINTERS* pExceptionInfo) { std::string dumpFileName = "./CrashDump.dump"; H
dump解析入門-用VS解析dump檔案進行排障
突然有一天部署在伺服器的一個應用掛掉了,沒辦法只能進入伺服器開啟 【事件檢視器】檢視下,好不容易找到了開啟後一臉懵逼 事件檢視器查到的內容根本對我們排障沒有任何作用。 在這個時候如果有對應的dump檔案就能派上用場了, 只要有dump檔案就能查到應用掛掉那刻的一手情報,可能有人
ejabberd叢集失敗,log目錄下產生 .dump檔案
報錯檔案: 報錯資訊如下: =erl_crash_dump:0.3 Sun May 13 16:40:25 2018 Slogan: Kernel pid terminated (application_controller) ({application_