在构建应用程序, 库, 驱动程序或者操作系统是, 编译器和链接器会在创建.exe, .dll, .sys以及其他可执行文件(也被称为二进制文件或者映像)的同时, 还会创建一定数量的附加文件, 这些文件也被称为符号文件(Symbol File).
从Windows Xp和Windows Server 2003开始, 符号文件只使用PDB格式.
符号文件通常包含以下内容:
- 全局变量的名字和地址
- 函数名, 地址及其原型
- 帧指针优化(Frame Pointer Optimization, FPO)数据
- 局部变量的名字和地址
- 源文件路径以及每个符号的行号
- 变量, 结构等的类型信息
符号文件分为公有符号, 和私有符号两种. 公有符号中包含数量有限的符号信息, 而这些数量有限的信息对于调试模块来说一般是足够的.
微软发布的所有版本的操作系统都有公有符号包可供下载.
摘自<Windows 高级调试>