如何检查pdb文件是否对调试程序集有效

sat*_*ori 5 c# debugging mono symbols visual-studio

我正在为学术目的编写符号源服务器的逻辑.

如果它们彼此匹配,我必须检查程序集及其pdb文件,以便用户可以毫无问题地使用它们.

我做了很少的研究,但没有任何壮观.如果VS将得到错误的符号调试它可能会显示信息:

以下模块是在启用优化或没有调试信息的情况下构建的:assembly.dll
要调试此模块,请将其项目构建配置更改为调试模式.要禁止显示此消息,请禁用"如果启动时没有用户代码,则调用警告"选项.

我也想知道VS从pdb和汇编中获取哪些信息来验证它们.

有没有(托管)API?甚至不受管理?

有任何想法吗?

Tim*_*son 2

我认为 Visual Studio 使用的 API 的名称是 DIA;它是一个可以从 C# 调用的 COM API。

Mono.Cecil库提供一组很好的类来访问程序集及其符号;它使用下面的 DIA 来存储 .pdb 文件。为此我会直接打电话给塞西尔;如果没有,源代码应该提供指导。