微软开源PDB
PDB或“程序數(shù)據(jù)庫(kù)(Program DataBase)”是Windows生態(tài)系統(tǒng)的一個(gè)核心組件。不管你是使用C++編寫(xiě)代碼,還是使用.NET編寫(xiě)代碼,如果沒(méi)有PDB文件,即使是像單步執(zhí)行代碼這樣的基本任務(wù)也是不可能的。然而,PDB格式在很大程度上是個(gè)黑盒子。至少到目前為止是這樣。
\\幾年來(lái),微軟已經(jīng)發(fā)布了公共API,允許開(kāi)發(fā)人員直接查詢PDB文件。來(lái)自微軟的Jim Hogg在一篇博文的開(kāi)始部分特別提到了以下三篇文章:
\\- PDB文件說(shuō)明:https://support.microsoft.com/en-us/kb/121366\\
- 查詢PDB文件:https://msdn.microsoft.com/en-us/library/eee38t3h.aspx\\
- 調(diào)試接口訪問(wèn)SDK:https://msdn.microsoft.com/en-us/library/x93ctkx8(VS.80).aspx\
這些文章當(dāng)然有用,但對(duì)于那些編寫(xiě)編譯器和鏈接器的人(比如CLANG/LLVM社區(qū))來(lái)說(shuō),那還不夠。他們需要知道如何新建PDB文件,這就需要對(duì)PDB文件格式有一個(gè)更深入的了解。
\\為了應(yīng)對(duì)這種情況,微軟已經(jīng)遵循MIT許可協(xié)議發(fā)布了許多讀寫(xiě)PDB文件所需的代碼。這些代碼無(wú)法直接編譯,因?yàn)樗鄙俦匾臉?gòu)建文件。微軟發(fā)布這些代碼的目的是,讓開(kāi)發(fā)人員可以閱讀或者重用他們需要的代碼部分。如果想要一個(gè)完整的解決方案,那么微軟建議繼續(xù)使用已發(fā)布的API。
\\Jim Hogg寫(xiě)到:
\\\PDB格式非常復(fù)雜。我們還不確定到目前為止上傳的文件是否已經(jīng)提供了你可能需要了解的所有細(xì)節(jié)。如果你有簡(jiǎn)短的問(wèn)題,那么請(qǐng)?jiān)谶@篇博文的評(píng)論中提出。但對(duì)于問(wèn)題(例如,我需要查看定義XXX結(jié)構(gòu)的頭文件),請(qǐng)直接提交到GitHub項(xiàng)目,以便我們可以跟蹤和回復(fù)。
\\\查看英文原文:Microsoft Open Sources PDB
總結(jié)
- 上一篇: 【Android】7.1 布局控件常用的
- 下一篇: BZOJ3172 TJOI2013 单词