2015-03-28 12 views
12

Sto cercando di ottenere il debugging della rete WinDbg sulla rete, ma perde sempre le connessioni dopo l'accesso al debugger (Debug-> Break), quindi provo a ricominciare (Debug-> Vai). Tuttavia, se non inserisco mai il debugger, sembra che la connessione sia stabile per un periodo di tempo "N". Posso persino vedere le istruzioni di stampa di debug in WinDbg mentre utilizzo il sistema di destinazione durante questo periodo di prova. Inoltre, sembra che la connessione sia buona durante l'interruzione di debug, perché posso raccogliere informazioni dal sistema di destinazione. Io uso "! Ustr srv! SrvComputerName" per ottenere il nome del computer di destinazione e restituisce il nome corretto. Qualsiasi aiuto sarebbe molto apprezzato.WinDbg perde il debug della connessione sulla rete e il blocco della macchina di destinazione

Configurazione dei sistemi: Ho seguito le istruzioni da MSDN website per configurare i sistemi di destinazione e host.

Debug: Di seguito sono riportati i miei tentativi di risolvere questo problema.

  1. Disabilitazione controllo di flusso, e utilizzando la modalità Half Duplex, sulla scheda di rete. Ho provato questo dopo aver letto questo post: WinDbg, host machine lose network if test machine is on the same switch
  2. Acquisto di nuovi adattatori di rete. Secondo this webpage, la mia scheda di rete dovrebbe supportare il debug del kernel di rete. Tuttavia, ulteriori indagini mostrano che i venditori hanno la brutta abitudine di non aggiornare i propri ID di dispositivo, quindi ho deciso di escludere questa possibilità acquistando nuovi adattatori da diversi fornitori.
  3. Modifica porta di rete. Ho provato una mano piena di porte di rete diverse (49152-65535) nel caso in cui uno di loro viene utilizzato per uno scopo diverso.
  4. Scollegare il cavo Ethernet, quindi ricollegarlo in. Una volta persa la connessione, ho provato questo sperando che ristabilisse la connessione.
  5. Riavvio del sistema di destinazione. La stessa ragione del # 4.
  6. Modifica delle porte PCIe. Sono a corto di opzioni.
  7. Spostato il sistema host su un altro switch di rete. Nessun cambiamento.

Osservazione:

  1. Wireshark dimostra che il sistema di destinazione invia una pacchetti UPD al sistema host non appena si avvia il sistema, ma il sistema host non risponde fino WinDbg è lanciato. Più interessante, il sistema di destinazione continua a inviare pacchetti UPD all'host anche dopo che il sistema di destinazione non ha risposto. Sfortunatamente, non capisco i dati dei pacchetti UPD.
  2. WinDbg può ristabilire costantemente la connessione con il sistema di destinazione, se riavviato. Il sistema di destinazione sembra essere bloccato nell'intervallo di debug.

Info sistema: Il sistema host esegue Windows 8.1 Pro. Il sistema di destinazione sta eseguendo una valutazione Enterprise di Windows 8.1 (8 GB di RAM).

WinDbg stampare:

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. 

A questo punto WinDbg non è più reattivo, e continuare l'invio di pacchetti di dati. Anche il sistema di destinazione non risponde.

+0

Non pubblicare soluzioni nella domanda. Puoi postare una risposta alla tua domanda, se ti va. –

+0

È il protocollo? –

+0

Sì, lo è. http://stackoverflow.com/help/self-answer –

risposta

5

Ho finalmente risolto questo problema passando il sistema host. All'inizio pensavo che il sistema di destinazione fosse il problema, perché MSDN poneva solo il requisito di debug della NIC sul sistema di destinazione. Sembra che potrebbero esserci dei requisiti anche nel sistema host.

Nuovo sistema host: Desktop (Identico per indirizzare il sistema)

  • SO: Windows 8.1 Enterprise Evaluation x64
  • NIC: VEN_10EC & DEV_8168

precedente sistema host: Laptop

  • SO: Windows 8.1 Pro x64
  • NIC: VEN_8086 & DEV_1502

NOTA: Non so davvero la causa principale. Entrambe le NIC sono nell'elenco Supported Ethernet NICs, ho utilizzato la stessa versione di WinDbg fornita con WDK e tutti i sistemi si trovano sullo stesso switch.

+0

Esattamente la stessa esperienza per me. Il mio obiettivo è Windows 10 x64 con NIC: VEN_8086 e DEV_1502. Quando ho usato il laptop Dell come host con VEN_10EC e DEV_8168 la mia connessione non funzionava come descritto in OP. Quando ho usato un PC diverso come host con VEN_8086 e DEV_100F, la connessione funzionava correttamente. Nessuna modifica al target necessario (eccetto cambiare l'impostazione hostip, ovviamente). –

2

Avevo il problema simile e l'ho risolto utilizzando l'adattatore da USB a Ethernet sulla macchina host invece della scheda NIC incorporata.

+2

Potete per favore condividere il fornitore e il prodotto specifico? –

+1

Linksys USB300M –

0

Ho anche riscontrato questo problema e ho scoperto che quando provo a forzare l'arresto del sistema operativo VMWare, la connessione windbg sembra recuperare prima che il sistema operativo VMWare sia effettivamente chiuso. Dopo diversi tentativi, ho trovato una soluzione strana:

Quando la connessione windbg tra host e guest VMWare è andata persa, provare a fare clic su "shutdown VMWare Guest", ma NON confermare. E potresti scoprire che la connessione windbg recupera! Quindi, annulla lo spegnimento.

È molto strano, sembra che VMWare stesso abbia bloccato la connessione di debug della rete persa. Ma almeno è una soluzione che vale la pena provare.

Un'altra soluzione che ho provato, che a volte funziona, è uccidere windbg nel task manager e riavviare windbg e riconnettersi al guest di VMWare. E potrebbe essere necessario attendere secondi o minuti finché non si ricollega.

btw, la mia scheda ethernet è Intel Ethernet Connection I218-V.

Problemi correlati