雨林木风系统 > 系统教程 > 其他教程 >

pdb是什么文件?pdb数据库文件如何点击?

pdb是什么文件?pdb数据库文件如何点击?

作者:佚名 来源:雨林木风系统 2023-05-08 17:58:46

pdb是什么文件?pdb数据库文件如何点击??

PDB是什么文件?许多开发人员发现在生成类库项目时除了生成dll文件外,还会生成一个同名的pdb文件,它是一个程序数据库文件,保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。 理解:pdb文件包含了编译后程序指向源代码的位置信息,用于调试的时候定位到源代码,主要是用来方便调试的。如果你对pdb是什么文件还不是很清楚,可以阅读下面的文章,还有pdb数据库文件如何点击。


pdb是什么文件?

大部分的开发人员应该都熟悉PDB文件是用来借助软件的调试的。但是他究竟是怎么工作的呢,大家大概并不知道。本文描述了PDB文件的存储和内容。同时还描 述了debugger怎么找到binay相应的PDB文件,以及debugger怎么找到与binay对应的源代码文件。本文适用于所有的Native和 Managed的开发人员。

在开始前,大家先定义2个术语:private build, 用来表示在开发人员自己机器上生成的build;public build,表示在公用的build机器上生成的build。private build相对来说比较简单,由于PDB和binay在相同的地方,通常地大家碰到的故障都是关于public build。 
 
所有的的开发人员需要熟悉的最重要的事情是”PDB文件跟源代码同样的重要“, 无PDB文件,你甚至不能debugging。对于public build,需要symbol server存储所有的PDB,然后当网友报告错误的时候,debugger才可以自动地找到binay相应的PDB文件, visual studio 和 windbg都熟悉怎么访问symbol server。在将PDB和binay存储到symbol server前,还需要对PDB运行进行source indexing, source indexing的作用是将PDB和source关联起来。 
 
接下来的部分假设有已经设置好了symbol server和source server indexing。TFs2010中可以很简单地完成对一个新的build的source indexing 和 symbol server copying。
 

pdb数据库文件如何点击?

正式开始PDB的内容,PDB不是公开的文件格式,但是Microsoft提供了API来借助从PDB中获得数据。
 
Native C++ PDB包含了如下的信息:
 * public,private 和static函数地址;
 * 全局变量的名字和地址;
 * 参数和局部变量的名字和在堆栈的偏移量;
 * class,structure 和数据的类型定义;
 * Frame Pointer omission 数据,用来在x86上的native堆栈的遍历;
 * 源代码文件的名字和行数;
 
.NET PDB只包含了2部分信息:
 * 源代码文件名字和行数;
 * 和局部变量的名字;
 * 所有的其他的数据都已经包含在了.NET Metadata中了; 
 

怎么在生成类库项目时不生成pdb文件?

点击类库项目属性页面→切换到生成选项卡→打开高级按钮→将调试信息一项设置为none



以上就是关于PDB文件的一些相关信息了,希望以上教程对我们有借助。