您的位置:首页 > 其它

设置调试符号路径

2007-08-22 13:50 169 查看
PDB(Program Database) file是一种最新的用于存贮debug信息的格式文件。
与它的两个“前辈”(COFF和CODEVIEW)不同的是,PDB可以保存所有种类的debug信息,并支持增量链接(incremental link)。此外,PDB文件是以单独文件的形式出现,而COFF和COEDEVIEW两种格式的debug信息是存在执行文件内的。(注:CODEVIEW格式的debug信息也可存于执行文件名,其后缀名为.dbg).
通常在调试时,我们无法获得一些系统DLL的调试符号,这样会让我们对程序运行的细节的了解可能会有一些问题,当然我们可以通过查看反汇编窗口来解决一些问题。但是如果你能够得到这个调试符号,是不是觉得会很爽。呵呵,爽是次要的,重要的是这些调试符号会强化你所需要的线索。要实现这一点,就须要有相应的windows调试符号文件,你可以通过下面的方法获得它:
symsrv*symsrv.dll*d:/localsymbols*http://msdl.microsoft.com/download/symbols
将此句加在项目属性中的[符号路径处](VC++.NET)即可。 其中f:/localsymbols是你的本地盘路径,请先确保它的存在。完成后,F5进行debug。第一次是时间比较长,这是因为在下载符号库文件。你可以在output窗口中看到一个接一个的符号库被加载……
开始的时候会有些慢,以后就好了

另外也可以通过设定环境变量来实现:
环境变量法:
Set _NT_SYMBOL_PATH = symsrv*symsrv.dll*f:/localsymbols*http://msdl.microsoft.com/download/symbols
最后发现一个问题,就是如果我不用symbol可以多看到ntdll.dll的一个压栈,如果用了那么第一个栈就变成kernel32.dll!_BaseProcessStart@4而不是

kernel32.dll!7c816fd7()
ntdll.dll!7c915b4f()

有谁明白给解释一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: