如何知道哪个PDB文件包含给定结构的类型信息?

时间:2012-11-29 16:11:47

标签: windows debugging winapi debug-symbols

我正在将一些Windows头文件翻译成Delphi。为了验证相关C结构的对齐,我需要转储某些PDB文件以查看相关的类型信息。为此,我尝试使用PdbXtract,但此工具要求我选择要检查的PDB文件。我如何知道哪个PDB文件包含所需的结构定义?

2 个答案:

答案 0 :(得分:1)

使用SysInternals(现为MS)中的strings.exe命令行实用程序。我在我的符号文件夹中运行了以下strings -s . | findstr /i critical_section并获得了许多有趣的输出:

C:\debuggers-v6.12.2.633-x86\sym\verifier.pdb\8878279C450C4F4DA6B252A4B824B4981\verifier.pdb: _RTL_CRITICAL_SECTION C:\debuggers-v6.12.2.633-x86\sym\verifier.pdb\8878279C450C4F4DA6B252A4B824B4981\verifier.pdb: U_RTL_CRITICAL_SECTION@@ C:\debuggers-v6.12.2.633-x86\sym\wntdll.pdb\B193CACD9AB340E7BF3434EA1ABBE0482\wntdll.pdb: _RTL_CRITICAL_SECTION C:\debuggers-v6.12.2.633-x86\sym\wntdll.pdb\B193CACD9AB340E7BF3434EA1ABBE0482\wntdll.pdb: U_RTL_CRITICAL_SECTION@@ C:\debuggers-v6.12.2.633-x86\sym\wntdll.pdb\B193CACD9AB340E7BF3434EA1ABBE0482\wntdll.pdb: _RTL_CRITICAL_SECTION_DEBUG

答案 1 :(得分:0)

在使用十六进制编辑器调查PDB文件后,我想知道哪个PDB文件包含所需的结构定义,使用 grep-like 工具搜索包含以下正则表达式模式的PDB文件名:

\x15\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00_Struct_Name\x00