介绍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。这些局限会进行改进,但需要时间来升级工具以支持新的格式。

最新版本的Mono也完成了对PDB的支持,具体参看https://trello.com/c/XaXWkasc/44-add-portablepdb-support-into-the-mono-ecosystem 


原文地址:http://www.infoq.com/cn/news/2017/02/Portable-PDB


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值