Condividi tramite


Controllo di una sessione di debug remoto

Dopo l'avvio della sessione remota, i comandi possono essere immessi nel server di debug o nel client di debug. Se sono presenti più client, uno qualsiasi di loro può immettere comandi. Dopo aver premuto INVIO, il comando viene trasmesso al server di debug ed eseguito.

Ogni volta che un utente immette un comando, tutti gli utenti vedranno il comando stesso e il relativo output. Se questo comando è stato eseguito da un client di debug, tutti gli altri utenti vedranno, prima del comando, un’identificazione dell'utente che ha emesso il comando. I comandi eseguiti dal server di debug non hanno questo prefisso.

Dopo l'esecuzione di un comando da parte di un utente, gli altri utenti connessi tramite KD o CDB non visualizzeranno un nuovo prompt dei comandi. D'altra parte, gli utenti di WinDbg vedranno il prompt nel pannello inferiore della Finestra di Comando del Debugger continuamente, anche quando il motore del debugger è in esecuzione. Nessuno di questi dovrebbe essere una causa di allarme; qualsiasi utente può immettere un comando in qualsiasi momento e il motore eseguirà questi comandi nell'ordine in cui sono stati ricevuti.

Le azioni eseguite tramite l'interfaccia WinDbg verranno eseguite anche dal server di debug.

Comunicazione tra utenti

Ogni volta che un nuovo client di debug si connette alla sessione, tutti gli altri utenti visualizzeranno un messaggio che indica che il client è connesso. Non viene visualizzato alcun messaggio quando un client si disconnette.

Il comando .clients (Elenca client di debug) elenca tutti i client attualmente connessi alla sessione di debug.

Il comando echo (Echo Comment) è utile per l'invio di messaggi da un utente a un altro.

aree di lavoro WinDbg

Quando WinDbg viene usato come client di debug, l'area di lavoro salverà solo i valori impostati tramite l'interfaccia grafica. Le modifiche apportate tramite la finestra Di comando del debugger non verranno salvate. Ciò garantisce che vengano riflesse solo le modifiche apportate dal client locale, poiché la finestra Comando debugger accetterà l'input da tutti i client e dal server di debug.

percorsi di file

Il percorso del simbolo, il percorso dell'immagine eseguibile e il percorso DLL dell'estensione vengono interpretati come percorsi di file relativi alla cartella di installazione degli strumenti di debug per Windows nel server di debug.

Quando WinDbg viene usato come client di debug, dispone anche di percorso di origine locale. Tutti i comandi correlati all'origine accederanno ai file di origine nel computer locale. Pertanto, i percorsi appropriati devono essere impostati in qualsiasi client o server che userà i comandi di origine.

Questo sistema a più percorsi consente a un client di debug di usare comandi correlati all'origine senza condividere effettivamente i file di origine con altri client o con il server. Ciò è utile se sono presenti file di origine privati o riservati a cui uno degli utenti ha accesso.

Cancellazione del server di debug

Il comando .endsrv (End Debugging Server) può essere usato per terminare un server di debug. Se il debugger ha stabilito più server di debug, è possibile annullare alcuni di essi lasciando altri in esecuzione.

La terminazione di un server impedirà ai client futuri di collegarsi. Non verrà interrotto alcun client attualmente collegato tramite il server.

uscire dal debugger e terminare la sessione

Per uscire da un client di debug senza terminare il server, è necessario eseguire un comando da tale client specifico. Se il client è KD o CDB, usare il tasto CTRL+B per uscire. Se si usa uno script per eseguire KD o CDB, usare .remote_exit (Exit Debugging Client). Se il client è WinDbg, scegliere Esci dal menu File per uscire.

Per terminare l'intera sessione e uscire dal server di debug, usare il comando q (Quit). Questo comando può essere immesso da qualsiasi server o client e terminerà l'intera sessione per tutti gli utenti.

Importante

Ci sono ulteriori importanti considerazioni sulla sicurezza nell'utilizzo del debug remoto, per ulteriori informazioni, comprese le informazioni sull'abilitazione della modalità protetta, vedere Security During Remote Debugging e Security Considerations for Windows Debugging Tools.