如何在封闭网络上操作和更新 Microsoft Windows 符号服务器?

发布于 2024-12-05 08:02:58 字数 602 浏览 0 评论 0原文

背景

当在封闭网络(即没有互联网连接)上工作时,Microsoft 的公共符号服务器在我的调试会话期间不可用。我最感兴趣的是 Windows 系统库和 C 运行时库的调试符号(例如 kernel32.dll、mscvrt100.dll)。

我在封闭网络上创建了一个调试符号服务器,并使用 此处。问题是,随着 Windows 更新,某些二进制文件需要获取更新的符号。我不知道有什么地方可以“整齐”地捆绑这些内容供下载。我知道的唯一选择是使用 symchk 下载 Windows 中所有内容的符号机器上的 /system32 目录将用于调试,这是繁琐且耗时的。

问题

如何在封闭网络上操作和更新 Microsoft Windows 的符号服务器?有没有什么方法可以“镜像”所有 Windows 调试符号,以便您不仅可以获得版本和服务包的符号,还可以获得修补程序和汇总的符号?

Background

When working on a closed network (i.e. no internet connection), Microsoft's public symbol server isn't available during my debugging sessions. I'm most interested in the debug symbols for the Windows system libraries and the C-runtime libraries (e.g. kernel32.dll, mscvrt100.dll).

I've created a debug symbol server on the closed network and "seeded" it with the debug symbol packages from here. The problem is that as Windows updates, some binaries need to get updated symbols. I don't know of any place where these are "neatly" bundled for download. The only option I'm aware of is to use symchk to download symbols for everything in the Windows/system32 directory on the machine that will be used for debugging which is tedious and time consuming.

Question

How do you operate and update a symbol server for Microsoft Windows on a closed network? Is there any way to "mirror" say, all of the Windows debug symbols such that you get the symbols for not just the releases and service packs but also the hotfixes and rollups?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

彡翼 2024-12-12 08:02:58

填充“封闭网络符号”存储的另一种选择是这样使用 symchk:

  • 进入目标计算机(您想要符号的计算机)。安装windbg并运行命令
    symchk /rc:\windows\*.dll /om c:\symbols.txt

  • 在连接到互联网的计算机上,检索生成的符号.txt 文件并使用相同的 symchk :
    symchk /im c:\temp\symbols.txt

在第一步中,symchk 将生成一个带有目标计算机二进制文件签名的文本文件。在第二步中,读取此列表,并且 symchk 实际上从 Microsoft 符号服务器检索 pdb 文件。

Another option to populate your 'closed network symbol' store is to use symchk this way :

  • go on the target machine (the one you want the symbols). Install windbg and run the command
    symchk /r c:\windows\*.dll /om c:\symbols.txt

  • on a machine connected to the internet, retreive the symbols.txt file generated and use the same symchk :
    symchk /im c:\temp\symbols.txt

In the first step, symchk will generate a text file with the signatures of the binaries of the target machine. In the second step, this list is read and symchk actually retreives the pdb files from the Microsoft Symbol Server.

初与友歌 2024-12-12 08:02:58

微软在上个世纪就曾提供符号包。那些日子已经过去了,假设有互联网连接。

您需要增加该机柜外部计算机的符号缓存。编写一个使用尽可能多的类似 DLL 的小测试程序并对其进行调试。然后以某种方式将符号缓存内容复制到受保护的计算机。尽管您获得 DLL 与 PDB 版本完全匹配的可能性并不大,因为这台受保护的计算机可能也没有获得 Windows 更新。

Microsoft used to provide symbol packages back in the previous century. Those days are over, an Internet connection is assumed.

You'll need to spike the symbol cache of a machine outside of that closet. Write a little test program that uses as many similar DLLs as possible and debug it. Then copy the symbol cache contents to the secured machine, somehow. Although the odds that you'll get a exact DLL vs PDB version match are not that great, given that this secured machine probably doesn't get Windows updates either.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文