Author: wpulog
Site: http://www.pulog.org
Date: 2010-03-26
[目录]
0×00 前言
0×01 问题描述
0×02 问题解决方法
0x00 前言
符号文件是调试器工作的重要依据,对很多调试功能都起着重要作用,例如栈回溯、源代码级跟踪、变量观察等等。
在 Windows 系统中,符号文件以 .pdb 为扩展名,比如:每个 Windows 操作系统下有一个 GDI32.dll 文件,编译器在编译该 DLL 的时候会产生一个 GDI32.pdb 文件,一旦你拥有了这个 PDB 文件,那么便可以用它来调试并跟踪到 GDI32.dll 内部。该文件和二进制文件的编译版本密切相关,比如修改了 DLL 的输出函数,再编译该 DLL,那么原先的 PDB 文件就过时了,不能再用老的 PDB 文件来做调试工作,而必须使用最新的 PDB 文件版本。
WinDbg是微软开发的免费源码级调试工具。其强大的功能就不在本文描述了,本文主要解决WinDbg使用过程中的一个小问题。
0x01问题描述
WinDbg加载符号文件一般分两种方式:一直接从微软维护的服务上下载最新的符号文件。有了符号文件服务器
安装本地符号文件后仍提示找不到符号文件,*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll -。
0×02 问题解决方法
下载并安装正确的符号文件,windows符号文件下载地址为:http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#d
设置环境变量 set _NT_SYMBOL_PATH=srv*c:\symbols*http://msdl.microsoft.com/download/symbols
注意:符号文件的安装路径最好不要包含空格,否则可能找不到符号文件。