為了調試編譯的應用程序,有必要將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。這些局限會進行改進,但需要時間來升級工具以支持新的格式。