使用 Microsoft Symbol Server 获取调试符号文件

文章翻译 文章翻译
文章编号: 311503 - 查看本文应用于的产品
本文的发布号曾为 CHS311503
展开全部 | 关闭全部

本文内容

概要

本文介绍了如何引用 Microsoft Symbol Server 以获取符号调试信息。

单击播放按钮以观看此流媒体演示。 注意:要查看此视频,您的计算机中必须安装 Windows Media Player 7.0 或更高版本。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
299321 Windows Media Player 7.1 的说明和可用性
当您使用各种 Microsoft 工具调试应用程序时,必须拥有符号信息。符号文件提供包含在可执行文件和动态链接库 (DLL) 中的函数的占位空间。此外,符号文件还可以表示达到失败点的函数调用路线图。例如,当您转储调试器内的调用堆栈时,必须拥有符号。本文讨论如何通过指定以下指向各种调试工具的 URL 使用 Microsoft Symbol Server:
http://msdl.microsoft.com/download/symbols
注意http://msdl.microsoft.com/download/symbols 是不可浏览的,并且仅适用于由调试器访问。

更多信息

使用 Symbol Server 技术

Microsoft Symbol Server 是使用随 Debugging Tools for Windows 软件包一起提供的 SymSrv 技术 (SymSrv.dll) 构建的。SymSrv 会生成本地符号高速缓存,以进行快速、自动的符号解析。

使用 Symbol Server 就像在符号路径中使用相应的语法一样简单。通常,语法的格式如下:
SRV*your local symbol folder*http://msdl.microsoft.com/download/symbols
其中 your local symbol folder 是用作符号目标的的任何驱动器或共享。

例如,要在 WinDbg 调试器中设置符号路径,请在该调试器的命令窗口中键入以下命令:
.sympath SRV*f:\localsymbols*http://msdl.microsoft.com/download/symbols
若要获取最新的 SymSrv 功能,必须安装最新的调试软件包。要获取 Debugging Tools for Windows 软件包的最新版本,请访问以下 Microsoft 网站:
Microsoft 调试工具
http://www.microsoft.com/china/whdc/devtools/ddk/default.mspx
有关 Symbol Server 技术的详细信息,请参阅 Debugging Tools for Windows 程序包中包含的 Debuggers.chm 帮助文件。

设置 _NT_SYMBOL_PATH 环境变量

如果在 _NT_SYMBOL_PATH 环境变量中提供了正确的 symsrv 语法,则常见的 Mircoroft 调试工具将使用 SymSrv 技术。这些工具会自动包括您在该变量中提供为符号路径的任何内容。

您可以将该变量设置为系统变量或用户环境变量。要从桌面上执行此操作,请右键单击我的电脑,然后单击属性。在高级选项卡上,单击环境变量

您也可以在命令提示符下临时设置该变量。如果采用此方法,通过命令提示符启动的所有应用程序都将继承该设置。例如:
Set _NT_SYMBOL_PATH = symsrv*symsrv.dll*f:\localsymbols*http://msdl.microsoft.com/download/symbols

将 Microsoft Symbol Server 与 WinDbg 一起使用

若要从 WinDbg 中使用 Symbol Server Web 站点,请按照下列步骤操作:
  1. 启动 Windows 调试器 (WinDbg.exe)。
  2. 文件菜单上,单击符号文件路径
  3. 符号路径框中,键入以下命令:
    SRV*your local folder for symbols*http://msdl.microsoft.com/download/symbols
    ,其中 your local folder for symbols 是您复制本地符号缓存的文件夹。调试符号将下载到此位置。

    注意:您可以指向计算机能达到的任意本地路径或共享位置;此位置不必是计算机硬盘上的位置。
此外,您也可以在命令提示符下使用 .sympath 命令来设置符号路径。

您可以将 symsrv 语法和其他符号路径组合在一起。例如,使用以下语法来指定两个或更多个符号路径:
f:\BusObjSymbols;SRV*f:\localsymbols*http://msdl.microsoft.com/download/symbols
该语法用分号来分隔符号路径。

当您开始调试故障转储文件或应用程序时,Windows 调试器将检查它加载的模块的符号信息是否位于本地文件夹中。如果模块的符号信息不在本地文件夹中,WinDbg 将尝试从 Symbol Server 下载相应的符号文件或文件。

如果您在具有不同文件版本的计算机上调试应用程序时使用相同的本地高速缓存,则将下载不同版本的符号,并将其同第一批符号存储在一起。SymStore 格式会按照映像的时间戳和大小(或校验和)来存储文件。因此,来自不同产品版本的符号可以并行共存。(SymStore.exe 是 Debugging Tools for Windows 软件包中生成符号服务器的实用程序。有关更多信息,请参阅产品文档。)

由于下载符号文件需要一些时间,因此请记住,当您第一次调试应用程序时,调试器可能看上去停止了响应(挂起)。这是因为必须下载系统 DLL 的大多数符号文件(如 Ntdll.dll、Kernel32.dll 和其他文件)。

使用 SymChk.exe 实用程序下载符号

您可以使用 SymChk.exe 实用程序验证符号并以方便、非入侵性的方式生成本地符号高速缓存。SymChk.exe 实用程序随 Debugging Tools for Windows 软件包提供。SymChk.exe 是一种命令行工具。您可能需要将 Debugging Tools for Windows 软件包的文件夹添加到系统上的 PATH 环境变量,以便从任意命令提示符下访问该工具。

要使用 SymChk.exe 实用程序下载 Windows\System32 文件夹中所有组件的符号文件,请使用以下命令行命令:
symchk /r c:\windows\system32 /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols
在此示例中:
  • “/r c:\windows\system32”查找 System32 文件夹和所有子文件夹中的所有符号文件。
  • “/s SRV*c:*http://msdl.microsoft.com/download/symbols”指定用于符号解析的符号路径。在此例中,“c:\symbols”是将在其中从符号服务器复制符号的本地文件夹。
要获取 SymChk.exe 命令行选项的更多信息,请在命令提示符下键入 symchk /?。其他选项包括指定正在运行的可执行文件的名称或进程 ID (PID) 的功能。

属性

文章编号: 311503 - 最后修改: 2011年1月5日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2002 专业版
  • Microsoft Visual Studio .NET 2002 企业级结构设计版
  • Microsoft Visual Studio .NET 2002 企业级开发版
  • Microsoft Visual Studio .NET 2002 Academic Edition
关键字:?
kbfile kbinfo kbsample KB311503
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com