Debugging 有没有一种方法可以获得封闭网络的整个平台的所有符号?

Debugging 有没有一种方法可以获得封闭网络的整个平台的所有符号?,debugging,windbg,Debugging,Windbg,我需要在封闭网络中调试W2K8 R2的内核转储。我尝试使用“Windows 7 Service Pack 1 x64零售符号,所有语言”包从下载“Windows 7和Windows Server 2008 R2”符号 我烧了它,复制了它,加载了符号,WinDbg声称它是ntkrnlmp.PDB的错误PDB。所以这很好,只是我不想继续这样做,试图找到正确的软件包下载 我开始研究这个问题,发现很多文章都在讨论如何让symchk递归地查看Windows或System32的本地目录,以自动下载这些文件

我需要在封闭网络中调试W2K8 R2的内核转储。我尝试使用“Windows 7 Service Pack 1 x64零售符号,所有语言”包从下载“Windows 7和Windows Server 2008 R2”符号

我烧了它,复制了它,加载了符号,WinDbg声称它是
ntkrnlmp.PDB
的错误PDB。所以这很好,只是我不想继续这样做,试图找到正确的软件包下载

我开始研究这个问题,发现很多文章都在讨论如何让
symchk
递归地查看Windows或System32的本地目录,以自动下载这些文件的PDB

但我需要能够为不同的操作系统下载所有PDB,而不是在网上搜索:Windows 2008 R2,而不是Win7

是否有办法将Windows 2008 R2的所有可能符号下载到Windows 7,以便复制/刻录这些符号并最终在封闭网络上使用?

转储的所有符号 我使用的一种方法是下载转储所需的所有符号。这可以通过以下方式完成:

  • 在受限计算机上创建符号列表
  • 将列表复制到具有Internet连接的计算机
  • 通过Internet连接下载机器上的所有符号
  • 将符号复制回受限制的机器
  • 这样,您就不需要从受限制的机器复制任何敏感信息(如转储)

    实现这一点的工具是WinDbg附带的
    symchk
    。以下命令应该可以工作:

  • symchk/id.dmp/om symbols.lst
  • 随便你
  • symchk/im symbols.lst/s srv*X:\symbols\*http://msdl.microsoft.com/download/symbols /od
  • 随意(从X:\symbols复制符号)
  • 参数包括:

    • /id
      输入是一个转储文件
    • /om
      输出是一个清单文件
    • /im
      输入是一个清单文件
    • /s
      符号服务器
    • /od
      输出详细信息以查看问题
    窗的所有符号 同样的方法也可用于下载操作系统的所有符号。然后执行步骤4的命令

    symchk /r /if %windir% /om symbols.lst
    
    其中参数为:

    • /r
      递归
    • /if
      从文件(或目录,如果递归)输入

    为什么symchk在没有互联网的机器上工作得非常慢?有关于加快进程的建议吗?@vlad2135:这是一个从互联网下载东西的命令。为什么要在没有互联网接入的机器上运行这个命令?@vlad2135:啊,好的。我懂了。我假设电脑已连接到本地网络,因此它具有物理连接。本地网络流量正常,但Internet访问被阻止。在这种情况下,从物理上断开PC与网络的连接可能会有所帮助。这将使请求立即失败,而不是等待超时。