pdb 文件
.PDB文件,全称为“程序数据库”文件。我们使用它(更确切的说是看到它被应用)大多数场景是调试应用程序。目前我们对.PDB文件的普遍认知是它存储了被编译文件的调试信息,作为符号文件存在。那么,它具体包含哪些内容呢?在调试过程中是怎样发挥作用的呢?我们有没有办法去操作这个文件呢?
1. PDB文件内容
.PDB文件的内部格式,微软并没有公开,现在仍然是一个秘密,但是它提供了相关的API用于调试器来从中获取信息。
一个非托管C++程序的PDB文件包含如下信息:
- l Public, private,和static函数地址
- l 全局变量的名称和地址
- l 参数和局部变量的名称及它们在栈中的偏移量
- l 类型定义,包括class, structure,和 data definitions
- l FPO(Frame Pointer Omission,帧指针省略)数据
- l 源文件名称和行号
说明:
从XP SP2起就不再启用FPO。
对于.NET PDB文件,只包含上面说到的两种信息:
- l 源文件名称和行号
- l 局部变量名称
.NET PDB文件包含如此少的信息,原因在于其他信息我们可以从元数据中获取,所以也就没有必要重复存储了。
posted on 2013-06-06 20:26 master2012 阅读(205) 评论(0) 收藏 举报
浙公网安备 33010602011771号