如何利用 pdb檔案去除錯

2022-09-16 23:21:26 字數 1279 閱讀 8584

如何利用.pdb檔案去除錯

**自:

問題需求:

1.需要去除錯乙個exe,檢視內部執行的過程,但是該exe的源**是孤立的,利用make檔案組織進行編譯.每天會給出編譯包。

問題的分析:

考慮1. 新建乙個vs的工程,然後手動新增這些檔案,然後編譯除錯。

考慮2. 既然有make檔案,那麼之前是否有編譯成功的版本,該版本是否儲存了除錯的符號檔案?

針對方案1:手動新增得考慮一下該工程的依賴關係,是否涉及太多的模組,否則將問題更加複雜化就不好了,我的需求中提到我的這個工程牽制的模組非常多,所以這個方案我肯定要放棄的。

針對方案2:我可以獲取到每日編譯包,開啟找了乙個,找到了該 *.exe,而且symbol files統一放到乙個檔案下管理,那麼我沒有理由不用第二種方案.

背景知識:

方案2肯定會用到的知識有符號檔案,所以先大致說一下符號檔案(symbol files)的定義.

符號檔案(symbol files)是乙個資料資訊檔案,它包含了應用程式二進位制檔案(比如:exe、dll等)除錯資訊,專門用來作除錯之用,最終生成的可執行檔案在執行時並 不需要這個符號檔案,但你的程式中所有的變數資訊都記錄在這個檔案中。所以除錯應用程式時,這個檔案是非常重要的。用 visual c++ 和 windbg 除錯程式時都要用到這個檔案。

解決方案;

2.選擇工程的屬性,在debugging標籤下,設定以下幾個資訊:

command: c:\test\sample.exe;

command arguments: test1  test2 (that depends on what you want to debug);

working directory: c:\test;

3.in vs, tools -> options -> debugging -> symbols, 然後指定symbol file(.pdb) ,將該路徑填入即可。

4.開啟sample.exe的源**檔案,將除錯中需要用到的檔案開啟並設定斷點,f5即可除錯.

總結:

碰到這個問題的時候,我第一反應就是用第一種方案,但是花費很長時間之後還是問題重重之後,我就看是意識到可能這並不是很好的辦法,通過分析和研究,選擇第二種方案,不到10分鐘就可以解決這個問題。

碰到問題一定要先分析一下已有的資源,然後再進行方案的選擇。

其他參考:符號檔案——windows 應用程式除錯必備

如何利用pdb 進行python除錯

方法一 python m pdb filename.pyimport pdb pdb.set trace 執行後顯示出如下介面 pdb 即進入了除錯命令互動介面 命令簡寫命令 作用break lineno b b lineno b filename lineno b functionname 顯示所...

VS如何指定PDB檔案

visual studio 程式資料庫 pdb 檔案 也成為符號檔案 將你在類 方法和其他 的原始檔中建立的識別符號對映到在專案的已編譯可執行檔案中使用的識別符號。pdb 檔案還可以將源 中的語句對映到可執行檔案中的執行指令。偵錯程式使用此資訊確定兩個關鍵資訊 顯示在 visual studio i...

利用GDB除錯CORE檔案

什麼是core dump core dump又叫核心轉儲,當程式執行過程中發生異常,程式異常退出時,由作業系統把程式當前的記憶體狀況儲存在乙個core檔案中,叫core dump。linux中如果記憶體越界會收到sigsegv訊號,然後就會core dump 在程式執行的過程中,有的時候我們會遇到s...