符號檔案——Windows應用程式調試必備

來源:互聯網
上載者:User

一、何謂符號檔案?

符號檔案(Symbol Files)是一個資料資訊檔,它包含 了應用程式二進位檔案(比如:EXE、DLL等)調試資訊,專門用來作調試之用,最終產生 的可執行檔在運行時並不需要這個符號檔案,但你的程式中所有的變數資訊都記錄在這 個檔案中。所以調試應用程式時,這個檔案是非常重要的。用 Visual C++ 和 WinDbg 調 試程式時都要用到這個檔案。

在 Windows 系統中,符號檔案以 .pdb 為副檔名, 比如:每個 Windows 作業系統下有一個 GDI32.DLL 檔案,編譯器在編譯該 DLL 的時候 會產生一個 GDI32.pdb 檔案,一旦你擁有了這個 PDB 檔案,那麼便可以用它來調試並跟 蹤到 GDI32.dll 內部。該檔案和二進位檔案的編譯版本密切相關,比如修改了 DLL 的輸 出函數,再編譯該 DLL,那麼原先的 PDB 檔案就過時了,不能再用老的 PDB 檔案來做調 試工作,而必須使用最新的 PDB 檔案版本。

Visual C++ 編譯代碼後會在 Debug 或者 Release 目錄下產生一個 PDB 檔案。一般情況下,符號檔案包括以下的資料資訊:

全域變數(Global variables);

局部變數(Local variables);

函數名和它們的入口地址(Function names and the addresses of their entry points);

FPO 資料(Frame Pointer Omission):Frame Pointer 是一種用來在 呼叫堆疊(Call stack)中找到下一個將要被調用的函數的資料結構原始碼的行序號 (Source-line numbers);

二、如何得到和安裝符號檔案?

先確定你的操 作系統(OS)版本;

到微軟網站下載相應的符號檔案;

安裝符號檔案,對 於符號檔案的安裝位置沒有特貝要求,可以安裝在任何目錄中;

設定環境變數, 使得調試工具(比如:Visual C++、WinDbg、Ntsd、DrWatson 等)能找到符號檔案;

安裝符號檔案的注意事項:

如果是手動安裝符號檔案,有一點很重要,那 就是宿主機(Hostt Computer)上的符號檔案必須與目標機器(Target Computer)上的 Windows 版本相匹配。

這裡所謂的宿主機指的是運行偵錯工作階段的機器,在典型的 雙系統偵錯工作階段環境中,宿主機可以是串連到目標機器的任何機器。目標機器指的是發生 軟體組件、系統服務、應用程式或作業系統運行失敗的機器。也即是需要被調試的機器, 它是偵錯工作階段關注的焦點。目標機器可以近在咫尺,也可以位於完全不同的地方。有時我 們也將目標機器稱之為——被調試者(debuggee),那麼與之對應,宿主機則 可以稱為調試者(debugger)。

三、在 Visual C++ 使用符號檔案的方法

在 Visual C++ 6.0 中的使用方法:

開啟 Visual C++ 6.0 的 Workspace 檔案( *.dsw);

進入 Tools 菜單,選擇 Options 功能表項目 (Tools->Options);

單擊 Directoties 標籤;

在 “Show directories for”下拉 列表中選擇 “Executable files”;

將符號檔案的路徑添加到 “Directories” 路徑列表中;

單擊 OK 完成;

在 Visual C++ .NET 2003 中的使用方法:

開啟 Visual C++ .NET 的專案檔(*.vcproj) ;

在解決方案管理器中選中要使用符號檔案的項目;

單擊右鍵進入項目屬 性對話方塊;

選擇“配置屬性”中的“調試”;

在與 “調試”對應的“操作”選項中有一個“符號路徑”, 在此添加符號檔案的路徑即可;

單擊 “確定” 完成;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.