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, ognuno di essi può immettere i 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 emesso da un client di debug, tutti gli altri utenti vedranno un'identificazione, precedente al comando, di cui l'utente ha emesso il comando. I comandi eseguiti dal server di debug non hanno questo prefisso.

Dopo l'esecuzione di un comando da un utente, gli altri utenti connessi tramite KD o CDB non visualizzeranno un nuovo prompt dei comandi. D'altra parte, gli utenti di WinDbg visualizzeranno il prompt nel pannello inferiore della finestra di comando del debugger in modo continuo, 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 salva solo i valori impostati tramite l'interfaccia grafica. Le modifiche apportate tramite la finestra Di comando del debugger non verranno salvate. In questo modo si 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 file

Il percorso del simbolo, il percorso dell'immagine eseguibile e il percorso DLL dell'estensione vengono tutti 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, ha anche il proprio 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 percorsi multipli 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 privata o riservata a cui uno degli utenti ha accesso.

Annullamento 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.

Uscita dal debugger e terminazione della sessione

Per uscire da un client di debug senza terminare il server, è necessario eseguire un comando da tale client specifico. Se questo 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 questo 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.