介绍Portable PDB
為了調(diào)試編譯的應(yīng)用程序,有必要將IL代碼或二進制的機器代碼與源代碼行進行匹配。雖然數(shù)據(jù)可以嵌入在應(yīng)用程序中,但這會顯著增加EXE或DLL文件的大小。取而代之的是,通常會使用單獨的“symbols”文件。在Windows平臺上,這被稱為PDB或“程序數(shù)據(jù)庫”。
早期PDB格式是為了C和C++設(shè)計的,發(fā)展了多年以來現(xiàn)在已經(jīng)支持.NET了。不幸的是,這種格式一直以來都被認(rèn)為是專有的,這就意味著它沒有很好文檔記錄,而且只能使用Windows庫讀取。
有了.NET Core,就需要一個新的跨平臺PDB庫。然而,不僅僅只是轉(zhuǎn)移現(xiàn)有的庫,Microsoft選擇重寫Windows PDB格式。新的Portable PDB格式刪除了本地代碼所需的功能,只保留了.NET功能。通過這樣做,可以簡化格式,并顯著減小PDB文件大小。
Portable PDB格式是公開記錄的,還有用來讀取它的開源庫。但有一些缺點:Portable PDB格式不支持編輯及繼續(xù)、FXCop風(fēng)格代碼分析(Roslyn代碼分析可與運行)、性能分析工具、后編譯構(gòu)建步驟,如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社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的介绍Portable PDB的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Xamarin的坑 - 绑定(一) -
- 下一篇: SQL Server on Linux的
