PDB文件:每个开发人员都必须知道的

PDB Files: What Every Developer Must Know

PDB文件:每个显影剂都必需品晓得

一 是什么PDB文件

质量开拓人员得晓得PDB文件是用来帮忙调试软件的。。但他毕竟是怎样任务的?,敝能够不熟悉。本文撰文了PDB文件的贮存和满意的。。同时还描 调试器若何找到BIAY的对应PDB文件,调试器若何找到与BIAY对立应的源指定遗传密码文件?。本文一致的掌握本乡人。 实行显影剂。 

在开端前,让敝先明确2个术语:private build, 用于表现在开拓人员本人的机具上尝试的尝试。;public build,表现在行情尝试机上尝试的尝试。private 排列对立简略,由于PDB和binay在完全一样尊重,敝通常的问题是关心大众的。 build。  
掌握的的开拓人员必要晓得的最要紧的事实是”PDB文件跟源指定遗传密码同一的要紧“, 无PDB文件,你甚至不克不及调试。为大众 build,必要作记号 保养贮存掌握PDB,过后当用户民族语言失策时,调试器可以自动手枪找到BIAY的有关的PDB文件。, visual studio 和 WordBG晓得若何出口作记号 server。将PDB和BIAY贮存到作记号 保养前,您还必要运转PDB运转的源指定遗传密码。 indexing, source 指数的功能是将PDB与源关系起来。。  
下偏袒的认为作记号先前创办。 server和source server indexing。TFS2010可以一言可尽地结尾新排列的源指定遗传密码。 indexing 和 symbol server copying。

二 PDB文件的满意的

正式启动PDB的满意的,PDB做错翻开的文件格式,而是微软装备API来帮忙从PDB获取记载。。
Native C++ PDB克制以下通知:
* public,private 定态应变量地址;
* 全程变量的著名的人物和地址;
* 参量和本土变量的著名的人物又堆栈上的偏移量。;
* class,structure 记载类型明确;
* Frame Pointer Omission 记载,在x86上运用的原始发生堆栈的遍历;
* 源指定遗传密码文件的著名的人物和编号;
.NET PDB仅克制2平衡通知
* 源指定遗传密码著名的人物和行数;
* 和拆移变量的著名的人物;
* 掌握停止记载都已克制在.NET中。 元记载中;  

三 PDB若何任务

当将模块负荷到举行的地址圈占时,,调试器运用2的通知查找对应的PDB文件。。第独一无疑是文件的著名的人物。,假如负荷 查找文件。在文件名字同样地的使习惯于下debugger还经过嵌入到PDB和binay的GUID来确保 PDB与BIAY的真实婚配。 因而哪怕没指定遗传密码修正,停止的BIAY和喂的PDB无法婚配。您可以运用它来检查二元系的GUID。。 
VisualStudio中模块窗口的作记号 文件列可以检查PDB的负荷次。。第独一搜索的方向是二元系方向。,假如它缺乏的二元系的方向中,查找二元系指定遗传密码达到目标硬指定遗传密码记载的尝试目录册,比如,Obj\Debug \*PDB, 假如没找到超过两条方向,PDB,推理作记号 保养的设置,在本土作记号中 保养缓存达到目标查找,假如在本土作记号中 保养缓存中没对应的PDB,最终的到长途作记号 保养查找。经过下面的查找序列,敝可以瞥见为什么公。
build和private Bug的PDB查找不冲。 
为个人的 偶尔敝必要在种族的机具上举行调试。,您必要用二元系文件副本的有关的的PDB。,关于加到GAC的.NET二元系文件,必要将PDB文件拷贝到C:\Windows\assembly\GAC_MSIL\Example\相似的binary名列前茅的目录册。另类的选择是明确情况变量DEVPATH。,而做错运用命令GACUTIL,将二元系放入GAC中。。明确DEVATION后来,在DePATH的方向上名列前茅二元系和PDB,DEVPATH下的二元系均等于GAC下。运用DEVPATH,率先,您必要找到目录册并向提出B研究用发动机发动。,过后找到情况变量DeValPoT,该值是目录册,过后在,开式开拓调式,启动DeValPoT的运用
 
 
 
 
 

吐艳后开展调式,假如DEVPATH没明确或方向不存在的话会通向顺序启动时非常”Invalid value for registry”。假如在怀抱运用DEVPATH,掌握停止顺序城市受到冲撞。,因而谨慎运用它。 
最终的,开拓人员必要晓得源指定遗传密码通知是若何贮存在PD达到目标。。为大众 builds,运转源 indexing 器后,版本把持器将指定遗传密码贮存在您设置的指定遗传密码缓存中。。为个人的 builds,最适当的PDB文件的充分方向被贮存,比如,C:\FO下的源文档,在pdb文件中贮存的方向为c:\foo\。为个人的 排列可以运用制作样张磁盘来补充物PDB对绝对方向的依赖性。,比如,可以运用源方向使勃起到V,调试也使勃起在停止人的机具上,V:。

完!