Я пытаюсь заставить работать отладку 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's 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 больше не отвечает и продолжает отправлять пакеты данных. Целевая система также не отвечает.