2024年11月pdb是什么文件?pdb数据库文件怎么打开?

 更新时间:2024-11-18

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

  ⑵pdb是什么文件?

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

  ⑷在开始前,我们先定义个术语: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。TFS中可以很简单地完成对一个新的build的source indexing 和 symbol server copying。

  ⑺pdb数据库文件怎么打开?

  ⑻正式开始PDB的内容,PDB不是公开的文件格式,但是Microsoft提供了API来帮助从PDB中获取数据。

  ⑼Native C++ PDB包含了如下的信息:

  ⑽* public,private 和static函数地址;

  ⑾* 全局变量的名字和地址;

  ⑿* 参数和局部变量的名字和在堆栈的偏移量;

  ⒀* class,structure 和数据的类型定义;

  ⒁* Frame Pointer Omission 数据,用来在x上的native堆栈的遍历;

  ⒂* 源代码文件的名字和行数;

  ⒃. PDB只包含了部分信息:

  ⒄* 源代码文件名字和行数;

  ⒅* 和局部变量的名字;

  ⒆* 所有的其他的数据都已经包含在了. Metadata中了;

  ⒇如何在生成类库项目时不生成pdb文件?

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

  ⒉以上就是关于PDB文件的一些相关信息了,希望以上教程对大家有帮助。

您可能感兴趣的文章:

相关文章