共用方式為


符號和符號檔案

連結應用程式、程式庫、驅動程式或作業系統時,建立.exe和.dll檔案的連結器也會建立一些稱為 符號檔的其他檔案

符號檔會保存執行二進位檔時實際不需要的各種資料,但在偵錯程式中可能非常有用。

一般而言,符號檔可能包含:

  • 全域變數

  • 區域變數

  • 函式名稱和其進入點的位址

  • FPO) 記錄 (框架指標省略

  • 來源行號

這些專案分別稱為 符號。 例如,單一符號檔 Myprogram.pdb 可能包含數百個符號,包括全域變數和函式名稱和數百個區域變數。 軟體公司通常會發行兩個版本的每個符號檔:包含 公用符號私用符號的完整符號檔,以及只包含公用符號的精簡 (移除) 檔案。 如需詳細資訊,請參閱 公用和私人符號

偵錯時,您必須確定偵錯工具可以存取與您正在偵錯之目標相關聯的符號檔。 即時偵錯和偵錯損毀傾印檔案都需要符號。 您必須取得您想要偵錯之程式碼的適當符號,並將這些符號載入偵錯工具。

Windows 符號

Windows 會將其符號保留在副檔名為 .pdb 的檔案中。

編譯器和連結器會控制符號格式。 Visual C++ 連結器會將所有符號放在 .pdb 檔案中。

Windows 作業系統內建兩個版本。 免費組建 (或零售組建) 具有相對小型的二進位檔,而且已核取的組建 (或偵錯組建) 具有較大的二進位檔,且程式碼本身具有更多偵錯符號。 在舊版 Windows 上,Windows 10 1803 版之前,已檢查的組建可供使用。 每個組建都有自己的符號檔。 在 Windows 上偵錯目標時,您必須使用符合目標上 Windows 組建的符號檔。

下表列出數個存在於標準 Windows 符號樹狀目錄中的目錄:

Directory 包含 的符號檔

Acm

Microsoft 音訊壓縮管理員檔案

COM

可執行檔 (.com)

CPL

主控台程式

DLL

動態連結程式庫檔案 (.dll)

DRV

驅動程式檔案 (.drv)

EXE

可執行檔 (.exe)

Scr

螢幕儲存程式檔案

SYS

驅動程式檔案 (.sys)