PDBExplorer是一款能够帮助用户查询.pdb为后缀的文件中内容的软件,通过PDBExplorer用户能够对某个.pdb文件进行快速的关键词检索,软件能够查询到文件中的符号名称和所有的地址信息,是一款开发会用到的工具。
功能介绍
1.查看PDB文件头信息,可以修改名称,模拟器不支持中文PDB名称文件使用此功能修改比较方便;
2.查看所有记录,并显示各个记录的偏移地址、长度、属性、标识等信息;
3.记录可以分文本方式、十六进制单记录以及浏览全部方式查看,并可以快速定位;
使用方法
一、下载打开软件,导入.pdb文件。
二、点击打开文件可以看到.pdb文件中的符号名称。
常见问题
什么是PDB文件?
大部分的开发人员应该都知道PDB文件是用来帮助软件的调试的。但是他究竟是如何工作的呢,我们可能并不熟悉。本文描述了PDB文件的存储和内容。同时还描述了debugger如何找到binay相应的PDB文件,以及debugger如何找到与binay对应的源代码文件。本文适用于所有的Native和Managed的开发人员。
在开始前,我们先定义2个术语:privatebuild,用来表示在开发人员自己机器上生成的build;publicbuild,表示在公用的build机器上生成的build。privatebuild相对来说比较简单,因为PDB和binay在相同的地方,通常地我们遇到的问题都是关于publicbuild。
所有的的开发人员需要知道的最重要的事情是”PDB文件跟源代码同样的重要“,没有PDB文件,你甚至不能debugging。对于publicbuild,需要symbolserver存储所有的PDB,然后当用户报告错误的时候,debugger才可以自动地找到binay相应的PDB文件,visualstudio和windbg都知道如何访问symbolserver。在将PDB和binay存储到symbolserver前,还需要对PDB运行进行sourceindexing,sourceindexing的作用是将PDB和source关联起来。
接下来的部分假设有已经设置好了symbolserver和sourceserverindexing。TFS2010中可以很简单地完成对一个新的build的sourceindexing和symbolservercopying。
二PDB文件的内容
正式开始PDB的内容,PDB不是公开的文件格式,但是Microsoft提供了API来帮助从PDB中获取数据。
NativeC++PDB包含了如下的信息:
*public,private和static函数地址;
*全局变量的名字和地址;
*参数和局部变量的名字和在堆栈的偏移量;
* class,structure和数据的类型定义;
*FramePointerOmission数据,用来在x86上的native堆栈的遍历;
*源代码文件的名字和行数;
.NETPDB只包含了2部分信息:
*源代码文件名字和行数;
*和局部变量的名字;
*所有的其他的数据都已经包含在了.NETMetadata中了;