1

我正在尝试使用 Debugging Tools for Windows 中的 symproxy.dll 设置符号代理。当我从调试器发出“.reload /f”时,找不到任何符号文件。看起来 Symproxy 并没有使用 Microsoft 符号服务器来实际获取符号。例如,我在 Wireshark 中什么也看不到。

SYMPROXY.DLL 肯定正在加载——我可以在事件日志中看到一些条目,并且http://my-server/symbols/status返回看起来有效的信息。

据我所知,我已按照文档中的说明进行操作。为什么 symproxy 不去微软的网站?我究竟做错了什么?我需要这个工作,因为我正在调试的机器没有外部访问权限。

运行 symproxy 的机器可以访问 Internet——我经常用它来调试。在注册表中为 symproxy 配置的符号路径看起来是正确的。它不必通过代理即可访问 Internet,我也在注册表中进行了配置。

当我在另一个盒子上使用 !sym 嘈杂时,它会联系 symproxy,但只是说“找不到文件”。就像 symproxy 只是为内容提供服务,而不是像它应该做的那样对 MS 符号服务器进行旁观。

4

4 回答 4

1

也试试简单的.symfix c:\symbols。这会将您的搜索路径设置为默认符号站点。您还可以检查您的搜索路径以查看它们的设置。

于 2008-12-23T16:22:54.920 回答
1

您有几个可用的选项:

  1. 确保您使用 .symfix(或 .symfix+)命令来对抗 Microsoft 的符号服务器。“+”版本保留了所有其他符号路径,只是将官方 MS 符号服务器附加到您的列表中。
  2. 尝试在重新加载命令之前输入“!sym noise”。这将指示 WinDbg 准确地向您展示它是如何解析符号的,以及它在此过程中遇到的错误(没有 PDB,无法访问远程服务器等)
于 2008-12-23T22:27:04.670 回答
1

同时,我已经在共享机器上安装并配置了 Squid。这似乎有效。我更喜欢使用 symproxy,但我只是没有时间深入研究它为什么不起作用。

于 2008-12-24T09:07:48.217 回答
0

首先,您是否有正确的符号服务器设置: http: //msdl.microsoft.com/download/symbols

第二,你的代理盒子可以上网吗?并设置为允许 symproxy 访问?可能是 symproxy 本身没有被代理(检查调试工具目录中的 symhttp.doc)。

我会尝试几个步骤来调试调试器 - 您可以在代理盒上运行带有故障转储的 windbg,如果是这样,您可以手动将符号复制到调试器盒中。如果没有,您需要解决互联网访问问题。

于 2008-12-23T16:17:57.520 回答