pdb是什么文件格式 怎么打开查看pdb文件
pdb是什么文件格式

很多人在问:pdb是什么文件格式?pdb文件有什么用?下面IT袋小编就给大家分享下什么是PDB格式文件。
PDB(Program DataBase),全称为“程序数据库”文件,是VS编译链接时生成的文件。DPB文件主要存储了VS调试程序时所需要的基本信息,主要包括源文件名、变量名、函数名、FPO(帧指针)、对应的行号等等。因为存储的是调试信息,所以一般情况下PDB文件是在Debug模式下才会生成。
PDB文件中记录了源文件路径的相关信息,所以在载入PDB文件的时候,就可以将相关调试信息与源码对应。这样可以可视化的实时查看调试时的函数调用、变量值等相关信息。模块当中记录的PDB文件是绝对路径。所以只要模块在当前电脑上载入,调试器自然地会根据模块当中的路径信息找到相应PDB文件并载入。同样PDB文件中记录的源文件路径也是绝对路径,所以PDB文件只要在当前电脑上载入,调试进入相应模块时,都能够匹配到记录的源文件,然后可视化地查看相应信息。
PDB文件什么时候产生?
PDB文件是在我们编译工程的时候产生的,它是和对应的模块(exe或dll)一起生成出来的。我们一般可能不会意识到PDB文件的重要性,因为如果只是我们本地进行开发,我们总是能够进行调适。这里我要引入两个概念:Private Build和Public Build1。Private Build指的是在开发机器上的编译,Public Build指的是在负责编译的机器上的编译。
正如上面我所说Private Build一般不会有问题,因为在编译出来的机器上进行调试所有必要的文件都在该在的地方。所有大部分不能调试的问题都发生在Public Build的情况下。
如果你的应用程序需要发布或者当作产品卖得,你就需要特别注意要保存你发布出去的那个版本的PDB文件和源文件。
注意:你只有一次机会保存着发布出去的PDB文件,如果你弄丢了将无法找回。(原因下面说明)<当然使用Reflector 类似的工具去调试也是可以的>
为什么PDB这么重要?
也许你会认为如果拿一份一模一样的源代码重新编译一个PDB文件,然后用来调试就行了。我也曾经这么认为过,直到有一天…......
直接的原因是因为VS生成出来的二进制文件的Header部分里面包含了它对应的PDB的GUID,PDB也包含一个GUIID,这两个GUID实在编译的时候添加进去的。VS调试器在载入PDB的时候会去比对这个两个GUID,如果不一致,那么就不能使用。
当然上面那个原因只是一个表面现象,根本原因是既是两份一模一样的代码编译器编译出来的文件可能是不一样的。因为编译器在编译的时候会对代码进行优化,而同一份代码可能会有很多种优化的方法,它会根据当时的具体机器的环境等情况选择一个最快的生成方法。所以它生成出来的文件有可能是不一样的!所以如果连生成出来的文件都不一样,那么原来的那个PDB里面的符号对应的地址也就没有意义了。
相关阅读
-
闲鱼鱼塘在哪里找 闲鱼怎么找到鱼塘
一篇IT技术小知识,为您介绍闲鱼鱼塘在哪里找的相关话题,闲鱼鱼塘已经关闭了,也无法进入鱼塘,为了吸引更多流量和给用户留下不错的印象,可以修改自己的昵称。闲鱼更改昵称的具体操
-
benwin是什么空调 benwln什么牌空调
相对于大多数人benwin是什么空调方面的内容,benwin是宾维空调,宾维是芬兰高端家电品牌,产品领域涵盖家用、轻型商用空调、移动空调、冰箱、挂壁式洗衣机、电热水器、空气源热泵热水器、
-
xp密码忘记了怎么解开 xp系统电脑忘记密码怎么解开
今日小编为你讲解xp密码忘记了怎么解开的相关知识,关于xp密码忘记了怎么解开 xp系统电脑忘记密码怎么解开,如有不对的地方欢迎指正! xp密码忘记了怎么解开 方法概括:1、首先,启动计
-
怎样去粘贴发送给朋友 复制链接怎么发送给朋友
一篇关于怎样去粘贴发送给朋友的知识内容,关于怎样去粘贴发送给朋友 复制链接怎么发送给朋友,继续往下看吧! 以微信8.0.7为例,粘贴发送给朋友分为5步:聊天界面中选择要复制的内容,


