PDB(Program Database) file是一种最新的用于存贮debug信息的格式文件。
与它的两个“前辈”(COFF和CODEVIEW)不同的是,PDB可以保存所有种类的debug信息,并支持增量链接(incremental link)。此外,PDB文件是以单独文件的形式出现,而COFF和COEDEVIEW两种格式的debug信息是存在执行文件内的。(注:CODEVIEW格式的debug信息也可存于执行文件名,其后缀名为.dbg).
通常在调试时,我们无法获得一些系统DLL的调试符号,这样会让我们对程序运行的细节的了解可能会有一些问题,当然我们可以通过查看反汇编窗口来解决一些问题。但是如果你能够得到这个调试符号,是不是觉得会很爽。呵呵,爽是次要的,重要的是这些调试符号会强化你所需要的线索。要实现这一点,就须要有相应的windows调试符号文件,你可以通过下面的方法获得它:
symsrv*symsrv.dll*f:\localsymbols*http://msdl.microsoft.com/download/symbols
将此句加在项目属性中的[符号路径处](VC++.NET)即可。 其中f:\localsymbols是你的本地盘路径,请先确保它的存在。完成后,F5进行debug。第一次是时间比较长,这是因为在下载符号库文件。你可以在output窗口中看到一个接一个的符号库被加载……
提示,设定了此属性后可能会导致debug的速度下降。当然这是正常现象,东东多了么。
现在就去下它们吧,Enjoy!
另外也可以通过设定环境变量来实现:
环境变量法:
Set _NT_SYMBOL_PATH = symsrv*symsrv.dll*f:\localsymbols*http://msdl.microsoft.com/download/symbols
具体设定位置:My Computer--->Properties---->Advanced--->Environment Varibles
不过偶建议最好用时再设它,不用时就不要设它,免得影响速度。
注: 关于获取SymSrv.dll ,请安装 Debugging Tools for Windows package