介绍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跨平臺或掃描二維碼關注
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的介绍Portable PDB的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xamarin的坑 - 绑定(一) -
- 下一篇: OSS.Social微信项目标准库介绍