gpt4 book ai didi

visual-studio - PDB 文件不包含所有 .net 源信息

转载 作者:行者123 更新时间:2023-12-04 05:38:50 25 4
gpt4 key购买 nike

这可能归结为我对 PDB 文件和构建过程的误解,而不是任何特定问题,但我一直在努力在其他地方找到一个好的答案。

我们最近成为优秀的小开发人员,开始在中央符号服务器(TFS 的所有部分)上索引和存储我们的 pdb 文件。问题是我们的 PDB 文件似乎没有包含所有源信息。

当尝试导航到 Visual Studio 中的源代码时,会找到程序集的 pdb 文件,如输出窗口所示:

PdbNavigator: Downloader: file://server/Symbols/my.assembly.pdb/1DB3F79EA3094EAAADFC6CDE6515FC871/my.assembly.pdb -> ok, 251 KB
PdbNavigator: No debugging information found on symbol servers for my.assembly, Version=1.0.1.1206, Culture=neutral, PublicKeyToken=4cd79aeab39b919b

但与此同时,它表示没有找到任何来源。如果我使用 Windows SDK 中的一些工具,我可以看到 PDB 文件不包含项目中大约 30% 的源文件的信息。

我想我在某处读到 PDB 文件只包含项目中实际使用的类的源代码,但这肯定会给任何 API 类型的程序集带来一个巨大的问题,其中多个类可能在程序集中没有功能,只有当从您项目的其他部分?

如果有人能阐明这一点,请告诉我。

谢谢。

最佳答案

PDB(通常)不存储源代码 - 它包含一个“文档”列表,即源代码文件名,以及“方法信息”,它将源代码行映射到程序集或二进制文件中的偏移量。当程序集的签名和构建日期与 PDB 文件中的相同时,PDB 匹配。可能是 MyAssembly.pdb 的版本正确,但签名和/或构建日期不匹配。

据我所知,签名并没有公开,但您可能会在 Internet 上找到一些代码,说明如何读取 PE 签名和 PDB 签名,以便您进行比较。

关于visual-studio - PDB 文件不包含所有 .net 源信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16348086/

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