WinDbg не будет загружать символы;говорит "ВНИМАНИЕ: сетевой путь запрещен" - PullRequest
0 голосов
/ 01 сентября 2011

Я пытаюсь отладить проблему с запуском службы .NET.Я следую совету здесь , но у меня проблемы с получением символов.Это, в частности, вызывает проблему с отладкой исключений .NET, поскольку WinDbg отказывается загружать правильный файл mscordawks.dll.

Я получаю ошибку: WARNING: Network path disallowed: 'SRV*C:\WebSymbols*http://msdl.microsoft.com/download/symbols'

Либо это происходит потому, чтоЯ отлаживаю что-то в сеансе 0, или потому что я использую WinDbg с повышенными правами.Как мне решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 02 сентября 2011

Мне не совсем понятно, что вы делаете, чтобы вызвать это сообщение об ошибке.Я предполагаю, что это команда .sympath или аналогичная.

Проверьте вывод .netsyms

Он не задокументирован в файле справки, но я заметил его в этой записи блога и это похоже на работу.Возможно, по умолчанию он отключен при определенных настройках безопасности.Боюсь, что это чистая догадка, но так просто попробовать, что я подумала, что предложу это.Возможно, из-за контекста безопасности, который вы используете, значение .netsyms должно быть равно 0. Уловка Джона позволит вам получать символы из сети, которые вы можете использовать, без необходимости использования сетевого пути символов.

Windbg следует использоватьmscordacwks.dll, который является частью вашей установки .NET - вы выполняете отладку на компьютере, на котором запущена служба, и поэтому 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
0 голосов
/ 01 сентября 2011

Похоже, вы пытаетесь отладить одну из системных служб, которая может вызвать тупик, когда отладчик пытается получить доступ к сети.

Возьмите мини-дамп процесса .dump /mf c:\tmp\mydump.dmp, присоедините отладчик к дампу, установите путь к символу, как указано выше, а затем .reload. Это кеширует все необходимые вам символы.

Тогда вы можете отладить в режиме реального времени, используя путь srv*c:\WebSymbols

...