天天看點

介紹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(轉載)