一般来说是编程和调试的新手。
我花了很多时间离线(没有互联网),正在阅读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
谢谢,因为耐心并且读了我糟糕的英语:)
答案 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
那应该强制加载二进制文件的所有符号。
确保您之前已正确配置了符号服务器。