系統(tǒng)軟件園 - 專(zhuān)注分享最好的電腦系統(tǒng)軟件!免費(fèi)安全下載 系統(tǒng)軟件園首頁(yè) | Win7激活工具 | 熱門(mén)專(zhuān)題
系統(tǒng)軟件園>您的位置:首頁(yè) > > 系統(tǒng)教程 > Win7系統(tǒng)教程 >

pdb是什么文件?pdb數(shù)據(jù)庫(kù)文件怎么打開(kāi)?

更新時(shí)間:2017-07-21 16:20:00| 編輯:本站整理 | 信息來(lái)源:本站整理|瀏覽數(shù):

PDB是什么文件?很多開(kāi)發(fā)人員發(fā)現(xiàn)在生成類(lèi)庫(kù)項(xiàng)目時(shí)除了生成dll文件外,還會(huì)生成一個(gè)同名的pdb文件,它是一個(gè)程序數(shù)據(jù)庫(kù)文件,保存著調(diào)試和項(xiàng)目狀態(tài)信息,使用這些信息可以對(duì)程序的調(diào)試配置進(jìn)行增量鏈接。 理解:pdb文件包含了編譯后程序指向源代碼的位置信息,用于調(diào)試的時(shí)候定位到源代碼,主要是用來(lái)方便調(diào)試的。如果你對(duì)pdb是什么文件還不是很清楚,可以閱讀下面的文章,還有pdb數(shù)據(jù)庫(kù)文件怎么打開(kāi)。


pdb是什么文件?

大部分的開(kāi)發(fā)人員應(yīng)該都知道PDB文件是用來(lái)幫助軟件的調(diào)試的。但是他究竟是如何工作的呢,我們可能并不熟悉。本文描述了PDB文件的存儲(chǔ)和內(nèi)容。同時(shí)還描 述了debugger如何找到binay相應(yīng)的PDB文件,以及debugger如何找到與binay對(duì)應(yīng)的源代碼文件。本文適用于所有的Native和 Managed的開(kāi)發(fā)人員。

在開(kāi)始前,我們先定義2個(gè)術(shù)語(yǔ):private build, 用來(lái)表示在開(kāi)發(fā)人員自己機(jī)器上生成的build;public build,表示在公用的build機(jī)器上生成的build。private build相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,因?yàn)镻DB和binay在相同的地方,通常地我們遇到的問(wèn)題都是關(guān)于public build。 
 
所有的的開(kāi)發(fā)人員需要知道的最重要的事情是”PDB文件跟源代碼同樣的重要“, 沒(méi)有PDB文件,你甚至不能debugging。對(duì)于public build,需要symbol server存儲(chǔ)所有的PDB,然后當(dāng)用戶(hù)報(bào)告錯(cuò)誤的時(shí)候,debugger才可以自動(dòng)地找到binay相應(yīng)的PDB文件, visual studio 和 windbg都知道如何訪(fǎng)問(wèn)symbol server。在將PDB和binay存儲(chǔ)到symbol server前,還需要對(duì)PDB運(yùn)行進(jìn)行source indexing, source indexing的作用是將PDB和source關(guān)聯(lián)起來(lái)。 
 
接下來(lái)的部分假設(shè)有已經(jīng)設(shè)置好了symbol server和source server indexing。TFS2010中可以很簡(jiǎn)單地完成對(duì)一個(gè)新的build的source indexing 和 symbol server copying。
 

pdb數(shù)據(jù)庫(kù)文件怎么打開(kāi)?

正式開(kāi)始PDB的內(nèi)容,PDB不是公開(kāi)的文件格式,但是Microsoft提供了API來(lái)幫助從PDB中獲取數(shù)據(jù)。
 
Native C++ PDB包含了如下的信息:
 * public,private 和static函數(shù)地址;
 * 全局變量的名字和地址;
 * 參數(shù)和局部變量的名字和在堆棧的偏移量;
 * class,structure 和數(shù)據(jù)的類(lèi)型定義;
 * Frame Pointer Omission 數(shù)據(jù),用來(lái)在x86上的native堆棧的遍歷;
 * 源代碼文件的名字和行數(shù);
 
.NET PDB只包含了2部分信息:
 * 源代碼文件名字和行數(shù);
 * 和局部變量的名字;
 * 所有的其他的數(shù)據(jù)都已經(jīng)包含在了.NET Metadata中了; 
 

如何在生成類(lèi)庫(kù)項(xiàng)目時(shí)不生成pdb文件?

打開(kāi)類(lèi)庫(kù)項(xiàng)目屬性頁(yè)面→切換到生成選項(xiàng)卡→點(diǎn)擊高級(jí)按鈕→將調(diào)試信息一項(xiàng)設(shè)置為none



以上就是關(guān)于PDB文件的一些相關(guān)信息了,希望以上教程對(duì)大家有幫助。


返回頂部


系統(tǒng)軟件園發(fā)布的系統(tǒng)鏡像及軟件均來(lái)至互聯(lián)網(wǎng),僅供學(xué)習(xí)和研究使用,不得用于任何商業(yè)用途并請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除,如果滿(mǎn)意請(qǐng)聯(lián)系版權(quán)方購(gòu)買(mǎi)。
如果您發(fā)現(xiàn)本站侵害了您的版權(quán),請(qǐng)立即聯(lián)系我們,本站將第一時(shí)間進(jìn)行相關(guān)處理。聯(lián)系方式(見(jiàn)首頁(yè))
版權(quán)聲明|下載聲明 Copyright @ 2016 系統(tǒng)軟件園