Windbg 如何知道pdb文件是公共文件还是私有文件?

Windbg 如何知道pdb文件是公共文件还是私有文件?,windbg,pdb,Windbg,Pdb,当我使用WinDbg加载pdb文件时,如何知道pdb文件是公共的还是私有的?使用lm查看模块,它将告诉您关联的pdb是否私有。例如,此PDB是公共的: 0: kd> lm mntdll start end module name 00007ffe`aee40000 00007ffe`af001000 ntdll (pdb symbols) c:\websymbols\ntdll.pdb\F296699D

当我使用WinDbg加载pdb文件时,如何知道pdb文件是公共的还是私有的?

使用lm查看模块,它将告诉您关联的pdb是否私有。例如,此PDB是公共的:

0: kd> lm mntdll
start             end                 module name
00007ffe`aee40000 00007ffe`af001000   ntdll      (pdb symbols)          c:\websymbols\ntdll.pdb\F296699DB5314A06935E88564D8CD2731\ntdll.pdb
这个是私人的:

0: kd> lm mole32
Browse full module list
start             end                 module name
00007ffe`ac550000 00007ffe`ac693000   ole32      (private pdb symbols)  c:\websymbols\ole32.pdb\C8E3042BDD6A44BA8D9CCF8E433F33DF1\ole32.pdb

@安迪:也许你喜欢
lmntdll
(带空格)。对我来说,这让我更清楚了选项是什么,DLL名称是什么,我被Windbg列出的“导出符号”弄糊涂了。例如:0:124>lm 002a0000 002bd000 mdll_1 C(导出符号)mdll_smibprotocol.dll 00020000 00034000 mdll_2 C(专用pdb符号)d:\windbg\mypdb\mdll_2.pdb第二个dll有专用pdb,但由于编译错误,第一个dll mdll_1实际上没有pdb。那么出口符号是什么?到目前为止,它误导了我在一个垃圾堆里。