2015-05-01 12 views
5

Attualmente sto riscontrando alcuni problemi nel debugging del kernel di un target di Windows 7 x64 dal mio computer host Windows 8.1 x64. Sto eseguendo Visual Studio 2013 con WDK 8.1 sul mio host e ho eseguito il provisioning della mia macchina di destinazione in esecuzione in VMWare.Debbuging del kernel di Windows: eseguire il debug sulla porta seriale virtuale con WDK 8.1

Ecco le configurazioni per la macchina di destinazione. E 'stato configurato con la lettura per lo più da qui - http://www.codeproject.com/Tips/545835/Kernel-Mode-Debugging-in-a-VM-using-Visual-Studio:

  • Windows 7 x64
  • Porta seriale COM2 con VMware con il nome \\ \ pipe \ COM2.. Tutte le opzioni corrette in VMWare sono selezionate
  • Flag di debug per OS attivato tramite msconfig. La porta di debug è COM2 in esecuzione a 115200 baud.
  • ho eseguito il client di destinazione test "WDK di destinazione di prova Installazione x64-x64_en-it.exe" sulla macchina prima di provisioning il computer

sono riuscito a disposizione il computer in modo corretto - ha creato il WDK Rimuovere Account utente. Tuttavia, sto riscontrando alcuni problemi di debug. Di seguito sono riportati i passaggi

  1. lancio l'immagine di destinazione di Windows 7 x64 in VMWare e aspettare sul menu di avvio
  2. In Visual Studio (computer host), andare a Debug -> Connetti a processo -> Selezionare il mio computer - > Selezionare il processo "Kernel" -> Allegare
  3. In VMWare, premere Invio per avviare Windows
  4. Ci vuole un po ', ma sul mio computer host, Visual Studio alla fine si connette. Posso scegliere di "Break All" e in realtà utilizzare il debugger.

Tuttavia, non riesco a connettermi al debugger se non lo faccio prima di avviare il kernel. E posso allegare solo una volta. Ad esempio, non posso consentire a Windows di inizializzarsi sul desktop, quindi creare il mio driver e iniziare il debug. Il debugger si bloccherà sempre "In attesa di riconnettersi ...". Lo stesso vale se inizio il debugging sull'inizializzazione del kernel, decido di interrompere il debug, quindi prova a riconnetterti o ricollegare; si bloccherà su "In attesa di riconnettersi ..." anche a tempo indeterminato.

+0

Ciao @xtef_ hai risolto questo? Ho un problema simile –

+0

Non è questo comportamento normale che è possibile connettersi con il kernel solo durante l'avvio? –

+0

@WouterHuysentruit Non sono abbastanza sicuro se questo è un comportamento normale; Ho letto informazioni in conflitto online. Se questo è un comportamento normale, significa che posso eseguire il debug del mio driver solo una volta prima di dover riavviare la macchina? Perché questo è il caso al momento. Prima di provare con VS 2013 e WDK, avevo utilizzato VisualDDK http://visualddk.sysprogs.org/ ed ero stato in grado di caricare/scaricare e eseguire il debug del mio driver tutte le volte che volevo. Attualmente posso allegare una volta all'avvio e quindi non riconnetterlo mai fino al riavvio. –

risposta

2

Utilizzare WinDbg per il debug del kernel. WinDbg viene fornito con il WDK e ti farà risparmiare così tanti problemi rispetto all'utilizzo di VS2013. Controlla Setting Up Kernel-Mode Debugging of a Virtual Machine Manually per le istruzioni dettagliate. Se hai problemi a far funzionare WinDbg, posso aiutarti, ma ho già rinunciato al debugging del kernel usando VS2013.

+0

Sto usando WinDbg come debugger in modalità kernel da Visual Studio. Se provo a lanciare WinDbg dalla riga di comando, ho lo stesso problema: posso collegarlo solo all'avvio e collegare una volta prima di dover riavviare la VM. I_can_ debug, ma dalla mia lettura (e precedente esperienza con VisualDDK), mi sento come se stessi facendo qualcosa di sbagliato. Dovrei essere in grado di caricare/scaricare il mio driver più volte e eseguire il debug senza riavviare la VM, data la facilità con cui ha funzionato con il plugin VisualDDK ormai obsoleto. –

+0

Innanzitutto, vorrei dire che dovresti essere in grado di collegare il tuo debugger più volte e in qualsiasi momento. In secondo luogo, potresti fornire maggiori informazioni? (1) Hai controllato "Resa CPU su sondaggio" quando hai creato la tua named pipe? (2) Puoi condividere il tuo comando WinDbg? Il mio appare come questo "windbg -k": port = \\. \ Pipe \ com_1, baud = 115200, pipe, riconnetti "'. (3) Puoi condividere la tua stampa su WinDbg? –

Problemi correlati