Condividi tramite


Debug remoto con WinDbg

Il debug remoto consente di eseguire il debug del codice in esecuzione in un computer diverso. Questa guida illustra come configurare un server di debug e connettere un client di debug per controllare la sessione di debug in modalità remota. Verranno illustrati i passaggi esatti per configurare entrambi i componenti.

Il codice di cui si sta eseguendo il debug potrebbe essere eseguito nello stesso computer del server di debug oppure può essere eseguito in un computer separato. Se il server di debug esegue il debug in modalità utente, il processo di debug può essere eseguito nello stesso computer del server di debug. Se il server di debug esegue il debug in modalità kernel, il codice di cui si esegue il debug viene in genere eseguito in un computer di destinazione separato.

Questo diagramma mostra come i tre computer interagiscono in una tipica configurazione di debug remoto:

Screenshot del diagramma che illustra i computer remoti, host e di destinazione connessi per il debug in modalità kernel.

Importante

Il debug remoto espone il sistema a potenziali rischi per la sicurezza. Prima di procedere:

È possibile usare diversi protocolli di trasporto per una connessione di debug remoto: TCP, NPIPE, SPIPE, SSL e porta COM. Si supponga di scegliere TCP come protocollo e WinDbg sia come client di debug che come server di debug. Usare la procedura seguente per stabilire una sessione di debug in modalità kernel remota.

  1. Nel computer host aprire WinDbg e stabilire una sessione di debug in modalità kernel con un computer di destinazione. (Vedere Debug in modalità kernel live con WinDbg (versione classica))

  2. Eseguire l'interruzione scegliendo Interrompi dal menu Debug o premendo CTRL-INTERR.

  3. Nella finestra di comando del debugger immettere il comando seguente.

    .server tcp:port=5005

    Annotazioni

    Il numero di porta 5005 è arbitrario. Si sceglie il numero di porta.

  4. WinDbg risponde con output simile al seguente. Copiare la stringa di connessione, che sarà necessaria per il passaggio successivo.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. Nel computer remoto aprire WinDbg e scegliere Connetti a sessione remota dal menu File .

  6. In Stringa di connessione immettere la stringa seguente.

    tcp:Port=5005,Server=YourHostComputer

    dove YourHostComputer è il nome del computer host, che esegue il server di debug.

    Seleziona OK.

Uso della riga di comando

In alternativa alla procedura nella sezione precedente, è possibile configurare una sessione di debug remoto nella riga di comando. Si supponga di voler stabilire una sessione di debug in modalità kernel tra un computer host e un computer di destinazione su un cavo 1394 sul canale 32. Utilizzare la procedura seguente per stabilire una sessione di debug remoto:

  1. Nel computer host immettere il comando seguente in una finestra del prompt dei comandi.

    windbg -server tcp:port=5005 -k 1394:channel=32

  2. Attendere l'avvio del server. Verrà visualizzato un messaggio di conferma con i dettagli della connessione. Copiare questa stringa di connessione prima di procedere al passaggio 3.

  3. Nel computer remoto immettere il comando seguente in una finestra del prompt dei comandi.

    windbg -remote tcp:Port=5005,Server=YourHostComputer

    dove YourHostComputer è il nome del computer host, che esegue il server di debug.

Importante

Il trasporto 1394 è disponibile per l'uso in Windows 10 versione 1607 e precedenti. Non è disponibile nelle versioni successive di Windows. Eseguire la transizione dei progetti ad altri trasporti, ad esempio KDNET tramite Ethernet. Per altre informazioni sul trasporto, vedere Configurazione automatica del debug del kernel di rete KDNET.

Passaggi successivi

È possibile stabilire il debug remoto in molti modi diversi da quelli illustrati in questo argomento.