如何设置windbg自动下载所有符号?

时间:2014-05-06 18:25:12

标签: debugging windbg symbols

一般来说是编程和调试的新手。

我花了很多时间离线(没有互联网),正在阅读Inside Windows Debugging书,但有时,我发现自己需要一个pdb文件。

我做了一些挖掘,我找到了这个网址:http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx,但版本太多,我花了一些时间试图找出如何找到合适的版本。

我确实找到了正确的版本,我确实找到了它,但没有运气(花了我超过6小时下载200 Mb),但我发现自己在圈子的开头(pdb不是正确的,即使构建是一个匹配),我需要有效的互联网继续阅读我的书,这是我在国家政策期间无法得到的。

我的问题很简单,如何让windbg一次性下载所有二进制文件的所有符号。

os info: 版本:windows 7 ultimate(x86) 建立:7601.win7sp1_gdr.130104-1431

谢谢,因为耐心并且读了我糟糕的英语:)

2 个答案:

答案 0 :(得分:6)

我认为您正在寻找文章Building a Debugging Environment

基本上,它会下载您当前安装的所有文件的符号。我在两个月前做了Windows 7安装并且工作正常 - 但它占用了8.3 GB的磁盘空间,当然下载时间很长。

概念是遍历Windows目录中的所有DLL和EXE,将文件添加到本地符号存储区,然后在线检查符号。

SET PATH=%PATH%;"C:\Program Files\Debugging Tools for Windows"
REM Copy all .DLL files
SYMSTORE add /r /f C:\Windows\*.dll /s C:\SymbolStore\OSSymbols /t "Microsoft Windows" /v ""
REM Download symbols for .DLL files
SYMCHK /r C:\Windows\*.dll /s SRV*C:\SymbolStore\OSSymbols*http://msdl.microsoft.com/download/symbols
REM Copy all .EXE files
SYMSTORE add /r /f C:\Windows\*.exe /s C:\SymbolStore\OSSymbols /t "Microsoft Windows" /v ""
REM Download symbols for .EXE files
SYMCHK /r C:\Windows\*.exe /s SRV*C:\SymbolStore\OSSymbols*http://msdn.microsoft.com/download/symbols

当脚本中断时,您可以再次运行它。使用散列存储DLL和EXE。如果文件未更改,则哈希不应更改。 Symstore非常聪明,只能根据文档获取丢失的文件:“SymChk总是在查询符号服务器之前搜索下游存储。

答案 1 :(得分:4)

如果要附加到要调试的应用程序或打开.dmp文件,请键入

.reload /f

那应该强制加载二进制文件的所有符号。

确保您之前已正确配置了符号服务器。