介紹Portable PDB

責(zé)任編輯:editor004

作者:Jonathan Allen

2017-02-13 11:32:05

摘自:INFOQ

 在當(dāng)今互聯(lián)網(wǎng)+ 風(fēng)起云涌的大環(huán)境下,一方面電子商務(wù),互聯(lián)網(wǎng)金融,各類 O2O 遍地開(kāi)花,另一方面互聯(lián)網(wǎng)上的各類違法違規(guī)的惡意行為也愈演愈烈,嚴(yán)重影響互聯(lián)網(wǎng)生態(tài)的正常秩序。

為了調(diào)試編譯的應(yīng)用程序,有必要將IL代碼或二進(jìn)制的機(jī)器代碼與源代碼行進(jìn)行匹配。雖然數(shù)據(jù)可以嵌入在應(yīng)用程序中,但這會(huì)顯著增加EXE或DLL文件的大小。取而代之的是,通常會(huì)使用單獨(dú)的“symbols”文件。在Windows平臺(tái)上,這被稱為PDB或“程序數(shù)據(jù)庫(kù)”。

早期PDB格式是為了C和C++設(shè)計(jì)的,發(fā)展了多年以來(lái)現(xiàn)在已經(jīng)支持.NET了。不幸的是,這種格式一直以來(lái)都被認(rèn)為是專有的,這就意味著它沒(méi)有很好文檔記錄,而且只能使用Windows庫(kù)讀取。

有了.NET Core,就需要一個(gè)新的跨平臺(tái)PDB庫(kù)。然而,不僅僅只是轉(zhuǎn)移現(xiàn)有的庫(kù),Microsoft選擇重寫(xiě)Windows PDB格式。新的Portable PDB格式刪除了本地代碼所需的功能,只保留了.NET功能。通過(guò)這樣做,可以簡(jiǎn)化格式,并顯著減小PDB文件大小。

Portable PDB格式是公開(kāi)記錄的,還有用來(lái)讀取它的開(kāi)源庫(kù)。但有一些缺點(diǎn):Portable PDB格式不支持編輯及繼續(xù)、FXCop風(fēng)格代碼分析(Roslyn代碼分析可與運(yùn)行)、性能分析工具、后編譯構(gòu)建步驟,如AOP、Code Contracts或是.NET decompilers。這些局限會(huì)進(jìn)行改進(jìn),但需要時(shí)間來(lái)升級(jí)工具以支持新的格式。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)