加载符号文件(pdb)位置:
1. 执行模块所在目录
2. 执行模块调试信息中指定的位置(CV_RSDS结构中的pdb字段)
3. 设置的符号文件目录
注: Microsoft符号服务器的符号文件是放在一个用执行模块特征签名命名的文件夹中的
其中,PE 映像签名和 PDB 文件名都保存在 PE 文件的 IMAGE_DIRECTORY_ENTRY_DEBUG 数据目录之中,遵循如下的数据结构定义:
typedef struct _tagCV_RSDS {
DWORD dwHeader;
GUID Signature;
DWORD dwAge;
CHAR pdb[1];
} CV_RSDS, *PCV_RSDS;
这个结构各个域的含义如下:
- dwHeader 的值应为 0x53445352 ,即字符串 "RSDS" 。
- Signature 为 PE 的映像签名。
- dwAge 域和 Signature 组合使用,成为 PE 的特征签名。
- pdb 为该 PE 对应的 PDB 文件名。
执行模块特征签名由 Signature 和 dwAge 组合而成