使用 Microsoft Symbol Server 获取调试符号文件
注意:要查看此视频,您的计算机中必须安装 Windows Media Player 7.0 或更高版本。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
当您使用各种 Microsoft 工具调试应用程序时,必须拥有符号信息。符号文件提供包含在可执行文件和动态链接库 (DLL) 中的函数的占位空间。此外,符号文件还可以表示达到失败点的函数调用路线图。例如,当您转储调试器内的调用堆栈时,必须拥有符号。本文讨论如何通过指定各种调试工具的以下 URL 来使用 Microsoft Symbol Server:
注意: http://msdl.microsoft.com/download/symbols 是不可浏览的,并且仅适用于由调试器访问。
回到顶端 |
更多信息
使用 Symbol Server 技术
Microsoft Symbol Server 是使用 Debugging Tools for Windows 软件包附带的 SymSrv 技术 (SymSrv.dll) 构建的。SymSrv 会生成本地符号高速缓存,以进行快速、自动的符号解析。
使用 Symbol Server 就像在符号路径中使用相应的语法一样简单。通常,语法的格式如下:
其中 your local symbol folder 是任何用作符号目标位置的驱动器或共享。
例如,要在 WinDbg 调试器中设置符号路径,请在该调试器的命令窗口中键入以下命令:
要获取最新的 SymSrv 功能,必须安装最新的调试软件包。要获取 Debugging Tools for Windows 软件包的最新版本,请访问以下 Microsoft 网站:
http://www.microsoft.com/whdc/devtools/ddk/default.mspx (http://www.microsoft.com/whdc/devtools/ddk/default.mspx)
有关 Symbol Server 技术的更多信息,请参阅随 Debugging Tools for Windows 软件包提供的 Debuggers.chm 帮助文件。
回到顶端 |
设置 _NT_SYMBOL_PATH 环境变量
如果您在 _NT_SYMBOL_PATH 环境变量中提供了正确的 symsrv 语法,常见的 Microsoft 调试工具就会使用 SymSrv 技术。这些工具会自动包括您在该变量中提供为符号路径的任何内容。
您可以将该变量设置为系统变量或用户环境变量。要从桌面上执行此操作,请右键单击我的电脑,然后单击属性。在高级选项卡上,单击环境变量。
您也可以在命令提示符下临时设置该变量。如果采用此方法,通过命令提示符启动的所有应用程序都将继承该设置。例如:
回到顶端 |
将 Microsoft Symbol Server 和 WinDbg 一起使用
要在 WinDbg 中使用 Symbol Server 网站,请按照下列步骤操作:
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 语法和其他符号路径组合在一起。例如,使用以下语法来指定两个或更多个符号路径:
该语法用分号来分隔符号路径。
当您开始调试故障转储文件或应用程序时,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 文件夹中所有组件的符号文件,请使用以下命令行命令:
在此示例中:
• | “/r c:/windows/system32”查找 System32 文件夹和所有子文件夹中的所有符号文件。 |
• | “/s SRV*c:*http://msdl.microsoft.com/download/symbols”指定用于符号解析的符号路径。在此例中,“c:/symbols”是将在其中从符号服务器复制符号的本地文件夹。 |
要获取 SymChk.exe 命令行选项的更多信息,请在命令提示符下键入 symchk /?。其他选项包括指定正在运行的可执行文件的名称或进程 ID (PID) 的功能。
使用 Microsoft Symbol Server 获取调试符号文件相关推荐
- Microsoft sql server 获取系统当前日期(时间)
获取系统日期(时间) 1.将时间的数据类型设置为date,然后在默认值或绑定输入 (CONVERT([varchar](12),getdate(),(111))) 如图 2.sql语句 插入时用get ...
- Crash Dump调试:Symbol Server/Source Server、PDB原理分析
Crash Dump调试:Symbol Server/Source Server.PDB原理分析 Crash Dump调试:Symbol Server/Source Server.PDB原理分析 - ...
- 无法获取有关Windows NT 组\用户‘组\用户’的信息,错误代码0x5(Microsoft SQL Server,错误:15404)...
原文:无法获取有关Windows NT 组\用户'组\用户'的信息,错误代码0x5(Microsoft SQL Server,错误:15404) 配置了复制,在删除某个发布的时候,突然报此错误,无法删 ...
- 把Oracle数据库移植到Microsoft SQL Server 7 0
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 把Ora ...
- 《Microsoft Sql server 2008 Internals》读书笔记--第九章Plan Caching and Recompilation(10)
<Microsoft Sql server 2008 Internals>读书笔记订阅地址: http://www.cnblogs.com/downmoon/category/230397 ...
- 访问 Microsoft SQL Server 元数据的三种
上海微创软件有限公司 肖桂东 适用读者:Microsoft SQL Server 中.高级用户 元数据简介 元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者 ...
- Microsoft.VsHub.Server.HttpHost
在vs2015中Microsoft.VsHub.Server.HttpHost.exe有什么作用,可不可以关掉,每次用vs时都卡顿,调试时断点也不跟着跳,最小化vs后再恢复vs才刷新,在任务管理里杀掉 ...
- win2008 php mssql study,MSSQL_SQL Server 2008的管理能力,Microsoft SQL Server 提供了一个用 - phpStudy...
SQL Server 2008的管理能力 Microsoft SQL Server 提供了一个用于管理一个或多个SQL Server实例的基于政策的系统和用于性能监控.故障排除和调整的工具,使得管理员 ...
- Microsoft SQL Server中的事务(转载)
1.1 事务的概念 事务是作为单个工作单元而执行的一系列操作,比如查询和修改数据等. 事务是数据库并发控制的基本单位,一条或者一组语句要么全部成功,对数据库中的某些数据成功修改; 要么全部不成功,数据 ...
- 已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)
操作SQLServer数据库时.遇到这种问题:已超过了锁请求超时时段. (Microsoft SQL Server,错误: 1222) 经过查找材料了解为资源抢占,照成死锁,杀死进程就OK了.详细操作 ...
最新文章
- Rocksdb DeleteRange实现原理
- 做转录组测序前需要知道的那些事
- 用Unity盖房子(一):《勇者斗恶龙:建造者2》游戏功能的猜想
- Laravel的初始化安装 1
- 计算机网络技术课程代码02141模拟试题,02141计算机网络技术201510真题及答案
- 算法-找出最近点对问题
- 设计模式(三)创建型模式
- 第六届省赛(软件类)真题----Java大学A组答案及解析
- sqlalchemy limitorder
- 计算机能够这样玩—自我学习,自我思维,自我工作(编程)
- 烂泥:LVM学习之LVM基础
- linux 权限 代码,linux 管理权限(示例代码)
- Cmake编译 OPENCV_DNN_CUDA 报错: CMake Error at modules/dnn/CMakeLists.txt:39 (message):
- Radius认证协议(八)报文属性
- c#(webapi)获取当前项目路径
- 图片文字的居垂直居中对齐属性:vertical-align:middle
- 浙江省中小学信息技术课 9 月换新教材,大数据人工智能占 80%
- Java之加密工具类java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils
- 深度学习论文笔记(可解释性)——CAM与Grad-CAM
- 软件测试薪资待遇如何
热门文章
- 简单案例:注册登录功能实现
- excel切片器_Excel有一对极品组合工具,能快速实现数据多维动态透视
- 打开CMD的方式以及常用的指令
- Win 10 下无法安装.net framework 3.5,错误代码0x800F081F的解决方案
- Android 11 system_server 读写 SDCARD
- 说说 Jaspersoft Studio 的主界面和报表设计视图
- 大学计算机专业那些课 --左飞
- 【概率入门(一)】排列组合?我们再来捋一捋
- linux修改分区自检,linux tune2fs命令取消大分区开机自检
- 常用PHP开发工具都有哪些(2021整理)