Condividi tramite


Debug remoto con WinDbg

Il debug remoto prevede due debugger in esecuzione in due posizioni diverse. Il debugger che esegue il debug viene chiamato server di debug. Il secondo debugger, denominato client di debug, controlla la sessione di debug da una posizione remota. Per stabilire una sessione remota, è necessario configurare prima il server di debug e quindi attivare il client di debug.

Il codice sottoposto a debug potrebbe essere in esecuzione nello stesso computer che esegue il server di debug oppure in esecuzione in un computer separato. Se il server di debug esegue il debug in modalità utente, il processo sottoposto a debug può essere eseguito nello stesso computer del server di debug. Se il server di debug esegue il debug in modalità kernel, il codice sottoposto a debug viene in genere eseguito in un computer di destinazione separato.

Il diagramma seguente illustra una sessione remota in cui il server di debug, in esecuzione in un computer host, esegue il debug in modalità kernel del codice in esecuzione in un computer di destinazione separato.

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

Esistono diversi protocolli di trasporto che è possibile usare per una connessione di debug remoto: TCP, NPIPE, SPIPE, SSL e porta COM. Si supponga di aver scelto di usare TCP come protocollo e si è scelto di usare WinDbg sia come client di debug che come server di debug. È possibile 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 Live Kernel-Mode Debugging using WinDbg (Classic)) (Vedere Live Kernel-Mode Debugging Using WinDbg (Classic)).

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

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

    .server tcp:port=5005

    Nota Il numero di porta 5005 è arbitrario. Il numero di porta è la scelta.

  4. WinDbg risponderà con output simile al seguente.

    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.

    Selezionare OK.

Uso della riga di comando

In alternativa alla procedura specificata nella sezione precedente, è possibile configurare una sessione di debug remoto nella riga di comando. Si supponga di essere configurato per stabilire una sessione di debug in modalità kernel, tra un computer host e un computer di destinazione, su un cavo da 1394 sul canale 32. È possibile 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. 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.

Informazioni aggiuntive

Esistono molti modi per stabilire il debug remoto diversi da quelli illustrati in questo argomento. Per informazioni complete sulla configurazione di un server di debug nella finestra di comando del debugger WinDbg, vedere .server (Create Debugging Server). Per informazioni complete sull'avvio di WinDbg (e sulla definizione del debug remoto) nella riga di comando, vedere Opzioni di WinDbg Command-Line.