gpt4 book ai didi

c# - Visual Studio 如何知道源文件是否与原始版本匹配?

转载 作者:可可西里 更新时间:2023-11-01 03:01:39 25 4
gpt4 key购买 nike

我弄清楚了 .NET 程序集 .dll 文件如何使用 GUID ( blog ) 映射到 .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 中的单个字符,我会得到:
enter image description here

我在哪里可以找到 .pdb 中引用的源文件的校验和?

最佳答案

MD5 校验和存储在每个源文件的 .pdb 文件中。如果您对上面的问题“您是否希望调试器使用它?”回答“否”,它会打印出它正在寻找的校验和:

enter image description here

使用十六进制编辑器,你可以看到它肯定在.pdb 中。我的下一个任务是弄清楚如何以编程方式访问它。对于 .pdb 文件,我希望它返回所有源文件名及其 MD5 校验和。

enter image description here

关于c# - Visual Studio 如何知道源文件是否与原始版本匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17120215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com