我弄清楚了 .NET 程序集 .dll 文件如何使用 GUID(博客)映射到 .pdb。当我调试到程序集并询问源代码时,如果我导航到文件,它可能会告诉我源代码与原始代码不同。它怎么知道这个?我期待 .pdb 文件包含每个文件的校验和,但它似乎没有。我发现转储调试信息的最佳工具是dia2dump。C++ .pdb 文件有 MD5 条目,但 C# .pdb 文件没有。
C++ 转储
dia2dump -f dia2dump.pdb > dia2dump.pdb.files.txt
C# 转储
dia2dump -f Autofac.pdb > Autofac.pdb.files.txt
dia2dump -all Autofac.pdb > Autofac.pdb.all.txt
我在“全部”转储中遗漏了什么?
它必须使用校验和。如果我更改 Module.cs 中的单个字符,我会得到:
在哪里可以找到 .pdb 中引用的源文件的校验和?