WinDbg不会下载符号;说“警告:不允许网络路径”

时间:2011-09-01 09:42:12

标签: windbg

我正在尝试调试启动.NET服务的问题。我正在关注提示here,但我在获取符号方面遇到了麻烦。这特别导致调试.NET异常的问题,因为WinDbg拒绝下载正确的mscordawks.dll。

我得到的错误是:WARNING: Network path disallowed: 'SRV*C:\WebSymbols*http://msdl.microsoft.com/download/symbols'

要么这样做是因为我正在调试会话0中的某些内容,要么因为我正在运行WinDbg。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

我不清楚您正在做什么来触发该错误消息。我会假设这是一个.sympath命令或类似命令。

检查.netsyms的输出

它在帮助文件中没有记录,但是我在this blog entry中发现它似乎有效。也许在某些安全设置下默认关闭。纯粹的猜测我害怕,但尝试这么简单,我以为我会建议它。可能是您使用的安全上下文强制.netsyms为0. John的技巧将能够从网络中获取符号,您可以使用它而无需网络符号路径。

Windbg应该使用作为.NET安装一部分的mscordacwks.dll - 您正在运行该服务的计算机上进行调试,因此windbg具有与您的服务相同的.NET安装。在任何其他地方都不应该有windbg来寻找它。希望所有实际需要的是你的“正确”设置的符号路径,而不是找到mscordacwks.dll的真正问题。如果需要,我们可以稍后再看。

检查当前状态:

0:001> .netsyms
netsyms = don't care

将其关闭会产生类似于错误消息的内容:

0:001> .netsyms 0
netsyms = no
0:001> !sympath srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
Network paths are disallowed, symbol server is not available.
Set your symbol path to a symbol tree on the local machine.
Symbol search path is: srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
Expanded Symbol search path is: srv*c:\symbols*http://msdl.microsoft.com/download/symbols
WARNING: Network path disallowed: 'srv*C:\Symbols*http://msdl.microsoft.com/download/symbols'

再次打开它可以使用网络符号搜索路径:

0:001> .netsyms 1
netsyms = yes
0:001> !sympath srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
Symbol search path is: srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
Expanded Symbol search path is: srv*c:\symbols*http://msdl.microsoft.com/download/symbols

答案 1 :(得分:0)

听起来您正在尝试调试其中一个可能在调试器尝试访问网络时导致死锁的系统服务。

获取流程.dump /mf c:\tmp\mydump.dmp的小型转储,将调试器附加到转储,将符号路径设置为上述然后.reload。这将缓存您需要的所有符号。

然后,您可以使用路径srv*c:\WebSymbols

进行调试