Я пытаюсь заставить WinDbg отлаживать работу в сети, но он всегда теряет связи после того, как я ворвался в отладчик (Debug- > Break), а затем попытаюсь запустить его снова (Debug- > Go). Однако, если я никогда не врывался в отладчик, похоже, что соединение стабильно для периода времени "N". Я даже могу видеть отладочные заявления печати в WinDbg, поскольку я использую целевую систему в течение этого льготного периода. Более того, похоже, что соединение хорошо во время отладки, потому что я могу собирать информацию из целевой системы. Я использую "! Ustr srv! SrvComputerName" для получения имени целевого компьютера и возвращает правильное имя. Любая помощь будет высоко оценена.
Настройка систем: Я выполнил инструкции веб-сайт MSDN для настройки моей целевой и хост-систем.
Отладка: Ниже приводятся мои попытки решить эту проблему.
- Отключение управления потоком и использование полудуплексного режима на сетевом адаптере. Я пробовал это после прочтения этого сообщения: WinDbg, хост-компьютер потерял сеть, если тестовый компьютер находится на одном и том же коммутаторе
- Покупка новых сетевых адаптеров. Согласно этой веб-странице, мой сетевой адаптер должен поддерживать отладку сетевого ядра. Однако дальнейшее исследование показывает, что у продавцов есть плохая привычка не обновлять идентификаторы своих устройств, поэтому я решил исключить эту возможность, покупая новые адаптеры от разных поставщиков.
- Изменение сетевого порта. Я попробовал руку, полную различных сетевых портов (49152-65535), на случай, если один из них используется для другой цели.
- Отсоедините кабель Ethernet, а затем снова подключите его. Как только соединение было потеряно, я попробовал это, надеясь, что он восстановит соединение.
- Перезагрузка целевой системы. По той же причине, что и # 4.
- Изменение портов PCIe. У меня заканчиваются варианты.
- Перемещенная хост-система на другой сетевой коммутатор. Без изменений.
Замечание:
- Wireshark показывает, что целевая система отправляет пакеты UPD в хост-систему, как только система загружается, но хост-система не отвечает до запуска WinDbg. Более интересно, что целевая система продолжает отправлять пакеты UPD для размещения даже после того, как целевая система перестала отвечать на запросы. К сожалению, я не понимаю данные пакета UPD.
- WinDbg может последовательно восстанавливать соединение с целевой системой, если перезагружается. Целевая система, похоже, застряла в отладочном перерыве.
Информация о системе: В хост-системе работает Windows 8.1 Pro. Целевая система работает под управлением Windows 8.1 Enterprise Evaluation (8 ГБ ОЗУ).
Распечатка WinDbg:
Microsoft (R) Windows Debugger Version 6.3.9600.17237 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Using NET for debugging
Opened WinSock 2.0
Waiting to reconnect...
Connected to target **.**.*.*** on port ***** on local IP **.**.*.***
Connected to Windows 8 9600 x64 target at (Fri Mar 27 18:58:06.217 2015 (UTC - 7:00)), ptr64 TRUE
Kernel Debugger connection established.
************* Symbol Path validation summary **************
Response Time (ms) Location
Deferred srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
Symbol search path is: srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows 8 Kernel Version 9600 MP (4 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 9600.17031.amd64fre.winblue_gdr.140221-1952
Machine Name:
Kernel base = 0xfffff801`00e70000 PsLoadedModuleList = 0xfffff801`0113a2d0
Debug session time: Fri Mar 27 18:58:06.918 2015 (UTC - 7:00)
System Uptime: 0 days 0:47:15.869
Break instruction exception - code 80000003 (first chance)
*******************************************************************************
* *
* You are seeing this message because you pressed either *
* CTRL+C (if you run console kernel debugger) or, *
* CTRL+BREAK (if you run GUI kernel debugger), *
* on your debugger machine keyboard. *
* *
* THIS IS NOT A BUG OR A SYSTEM CRASH *
* *
* If you did not intend to break into the debugger, press the "g" key, then *
* press the "Enter" key now. This message might immediately reappear. If it *
* does, press "g" and "Enter" again. *
* *
*******************************************************************************
nt!DbgBreakPointWithStatus:
fffff801`00fcab90 cc int 3
0: kd> g
... Retry sending the same data packet for 64 times.
The transport connection between host kernel debugger and target Windows seems lost.
please try resync with target, recycle the host debugger, or reboot the target Windows.
... Retry sending the same data packet for 128 times.
... Retry sending the same data packet for 192 times.
В этот момент WinDbg перестает реагировать и продолжает отправлять пакеты данных. Целевая система также не реагирует.