Attivazione di un server di debug
Esistono due modi per attivare il server di debug. Può essere attivato quando il debugger viene avviato usando l'opzione della riga di comando -server in una finestra del prompt dei comandi con privilegi elevati (Esegui come amministratore). Può anche essere attivato dopo l'esecuzione del debugger. Avviare il debugger con privilegi elevati (Esegui come amministratore) e immettere il comando .server .
Nota È possibile attivare un server di debug senza privilegi elevati e i client di debug potranno connettersi al server. Tuttavia, i client non potranno individuare un server di debug a meno che non sia stato attivato con privilegi elevati. Per informazioni su come individuare i server di debug, vedere Ricerca di server di debug.
I debugger supportano diversi protocolli di trasporto: named pipe (NPIPE), TCP, porta COM, SPIPE (Secure Pipe) e secure sockets layer (SSL).
La sintassi generale per l'attivazione di un server di debug dipende dal protocollo usato.
Debugger -server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [-noio] [Options]
Debugger -server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [-noio] [Options]
Debugger -server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [-noio] [Options]
Debugger -server com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [-noio] [Options]
Debugger -server spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [-noio] [Options]
Debugger -server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [-noio] [Options]
Debugger -server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [-noio] [Options]
Un altro metodo di attivazione di un server di debug consiste nell'usare il comando .server (Crea server di debug) dopo l'avvio del debugger.
.server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable]
.server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable]
.server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6]
.server com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password]
.server spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password]
.server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password]
.server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password]
I parametri nei comandi precedenti hanno i valori possibili seguenti:
Debugger
Può essere KD, CDB, NTSD o WinDbg.
pipe= PipeName
Quando si usa il protocollo NPIPE o SPIPE, PipeName è una stringa che fungerà da nome della pipe. Ogni nome della pipe deve identificare un server di debug univoco. Se si tenta di riutilizzare un nome di pipe, verrà visualizzato un messaggio di errore. PipeName non deve contenere spazi o virgolette. PipeName può includere un codice di formato di tipo printf numerico, ad esempio %x o %d. Il debugger sostituirà questo oggetto con l'ID del processo del debugger. Un secondo codice di questo tipo verrà sostituito con l'ID thread del debugger.
Nota Potrebbe essere necessario abilitare la condivisione di file e stampanti nel computer che esegue il server di debug. In Pannello di controllo passare a Rete e Rete Internet > e Centro> condivisione Impostazioni avanzate di condivisione. Selezionare Attiva condivisione file e stampanti.
port= Presa
Quando si usa il protocollo TCP o SSL, Socket è il numero di porta socket.
È anche possibile specificare un intervallo di porte separate da due punti. Il debugger verificherà ogni porta in questo intervallo per verificare se è disponibile. Se trova una porta libera e non si verifica alcun errore, verrà creato il server di debug. Il client di debug dovrà specificare la porta effettiva utilizzata per connettersi al server. Per determinare la porta effettiva, utilizzare uno dei metodi descritti in Ricerca di server di debug. Quando viene visualizzato questo server di debug, la porta sarà seguita da due numeri separati da due punti. Il primo numero sarà la porta effettiva usata; il secondo può essere ignorato. Ad esempio, se la porta è stata specificata come port=51:60 e la porta 53 è stata effettivamente usata, i risultati della ricerca visualizzeranno "port=53:60". Se si usa il parametro clicon per stabilire una connessione inversa, il client di debug può specificare un intervallo di porte in questo modo, mentre il server deve specificare la porta effettiva utilizzata.
clicon= Cliente
Quando viene usato il protocollo TCP o SSL e viene specificato il parametro clicon , verrà aperta una connessione inversa. Ciò significa che il server di debug tenterà di connettersi al client di debug, invece di consentire al client di avviare il contatto. Ciò può essere utile se si dispone di un firewall che impedisce una connessione nella direzione consueta. Il client specifica il nome di rete o l'indirizzo IP del computer in cui è presente o verrà creato il client di debug. Le due barre rovesciata iniziali (\) sono facoltative.
Poiché il server cerca un client specifico, non è possibile connettere più client al server se si utilizza questo metodo. Se la connessione viene rifiutata o interrotta, sarà necessario riavviare la connessione al server. Un server di connessione inversa non verrà visualizzato quando un altro debugger visualizza tutti i server attivi.
Nota Quando si usa clicon , è consigliabile avviare il client di debug prima della creazione del server di debug, anche se è consentito anche l'ordine consueto (server prima del client).
port= COMPort
Quando viene utilizzato il protocollo COM, COMPort specifica la porta COM da utilizzare. Il prefisso "COM" è facoltativo, ad esempio "com2" e "2" sono accettabili.
baud= BaudRate
Quando si usa il protocollo COM, BaudRate specifica la velocità baud in cui verrà eseguita la connessione. Qualsiasi velocità baud supportata dall'hardware è consentita.
channel= COMChannel
Se viene usato il protocollo COM, COMChannel specifica il canale COM da usare per comunicare con il client di debug. Può essere qualsiasi valore compreso tra 0 e 254 inclusi. È possibile usare una singola porta COM per più connessioni usando numeri di canale diversi. Questo comportamento è diverso dall'uso di porte COM per un cavo di debug, in questa situazione non è possibile usare canali all'interno di una porta COM.
proto= Protocollo
Se viene usato il protocollo SSL o SPIPE, Protocol specifica il protocollo Secure Channel (S-Channel). Può trattarsi di una delle stringhe tls1, pct1, ssl2 o ssl3.
Cert
Se viene usato il protocollo SSL o SPIPE, Cert specifica il certificato. Può trattarsi del nome del certificato o dell'identificazione personale del certificato (stringa di cifre esadecimali fornite dallo snapin del certificato). Se viene usata la sintassi certuser=Cert , il debugger cercherà il certificato nell'archivio di sistema (archivio predefinito). Se viene usata la sintassi della sintassi digitaser=Cert , il debugger cercherà il certificato nell'archivio computer. Il certificato specificato deve supportare l'autenticazione del server.
nascosto
Impedisce la visualizzazione del server quando un altro debugger visualizza tutti i server attivi.
password= Parola d’ordine
Richiede a un client di specificare la password specificata per connettersi alla sessione di debug. La password può essere qualsiasi stringa alfanumerica, fino a dodici caratteri di lunghezza.
Avviso Uso di una password con protocollo TCP, NPIPE o COM offre solo una piccola quantità di protezione, perché la password non è crittografata. Quando una password viene usata con il protocollo SSL o SPIPE, viene crittografata. Se si vuole stabilire una sessione remota sicura, è necessario usare il protocollo SSL o SPIPE.
ipversion=6
(Solo strumenti di debug per Windows 6.6.07 e versioni precedenti) Forza il debugger a usare IP versione 6 anziché la versione 4 quando si usa TCP per connettersi a Internet. In Windows Vista e versioni successive il debugger tenta di impostare automaticamente l'impostazione predefinita su IP versione 6, rendendo questa opzione non necessaria.
-noio
Se il server di debug viene creato con l'opzione -noio , non è possibile eseguire alcun input o output tramite il server stesso. Il debugger accetterà solo l'input dal client di debug (più qualsiasi comando iniziale o script di comando specificato dall'opzione della riga di comando -c ). Tutto l'output verrà indirizzato al client di debug. L'opzione -noio è disponibile solo con KD, CDB e NTSD. Se viene usato NTSD per il server, non verrà creata alcuna finestra della console.
IcfEnable
Fa sì che il debugger abiliti le connessioni di porta necessarie per la comunicazione TCP o named pipe quando il firewall di connessione Internet è attivo. Per impostazione predefinita, il firewall di connessione Internet disabilita le porte usate da questi protocolli. Quando IcfEnable viene usato con una connessione TCP, il debugger fa sì che Windows apra la porta specificata dal parametro Socket . Quando IcfEnable viene usato con una connessione named pipe, il debugger fa sì che Windows apra le porte usate per named pipe (porte 139 e 445). Il debugger non chiude queste porte al termine della connessione.
Opzioni
Eventuali parametri aggiuntivi della riga di comando possono essere inseriti qui. Per un elenco completo, vedere Opzioni della riga di comando.
È possibile usare il comando .server per avviare più server usando opzioni di protocollo diverse. Ciò consente a diversi tipi di client di debug di partecipare alla sessione.
Vedi anche
Controllo di una sessione di debug remoto
.endsrv (server di debug finale)