介绍Portable PDB

为了调试编译的应用程序,有必要将IL代码或二进制的机器代码与源代码行进行匹配。虽然数据可以嵌入在应用程序中,但这会显著增加EXE或DLL文件的大小。取而代之的是,通常会使用单独的“symbols”文件。在Windows平台上,这被称为PDB或“程序数据库”。

早期PDB格式是为了C和C++设计的,发展了多年以来现在已经支持.NET了。不幸的是,这种格式一直以来都被认为是专有的,这就意味着它没有很好文档记录,而且只能使用Windows库读取。

有了.NET Core,就需要一个新的跨平台PDB库。然而,不仅仅只是转移现有的库,Microsoft选择重写Windows PDB格式。新的Portable PDB格式删除了本地代码所需的功能,只保留了.NET功能。通过这样做,可以简化格式,并显著减小PDB文件大小。

Portable PDB格式是公开记录的,还有用来读取它的开源库。但有一些缺点:Portable PDB格式不支持编辑及继续、FXCop风格代码分析(Roslyn代码分析可与运行)、性能分析工具、后编译构建步骤,如AOP、Code Contracts或是.NET decompilers。这些局限会进行改进,但需要时间来升级工具以支持新的格式。

本文转自d1net(转载)

上一篇:深入理解 Promise 五部曲:3. 可靠性问题


下一篇:深入理解 Promise 五部曲:4. 扩展问题