Attivazione di un client intelligente
Dopo aver attivato il server di elaborazione DbgSrv, è possibile creare un client intelligente in un altro computer e avviare una sessione di debug.
Esistono due modi per avviare un client intelligente: avviando CDB o WinDbg con l'opzione della riga di comando -premote o usando l'interfaccia grafica WinDbg.
Il protocollo del client intelligente deve corrispondere al protocollo del server di elaborazione. La sintassi generale per l'avvio di un client intelligente dipende dal protocollo usato. È possibile scegliere tra le seguenti opzioni:
Debugger -premote npipe:server=Server,pipe=PipeName[,password=Password] [Options]
Debugger -premote tcp:server=Server,port=Socket[,password=Password][,ipversion=6] [Options]
Debugger -premote tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] [Options]
Debugger -premote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] [Options]
Debugger -premote spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] [Options]
Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] [Options]
Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] [Options]
Per usare l'interfaccia grafica per connettersi a un server di elaborazione, WinDbg deve essere in modalità inattiva. Deve essere stato avviato senza parametri della riga di comando oppure deve aver terminato la sessione di debug precedente. Selezionare il file | Connettersi al comando di menu Stub remoto. Quando viene visualizzata la finestra di dialogo Connetti al server Stub remoto, immettere una delle stringhe seguenti nella casella di testo Stringa di connessione :
npipe:server=Server,pipe=PipeName[,password=Password]
tcp:server=Server,port=Socket[,password=Password][,ipversion=6]
tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6]
com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]
spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password]
ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password]
ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password]
In alternativa, è possibile usare il pulsante Sfoglia per individuare i server di elaborazione attivi.
I parametri nei comandi precedenti hanno i valori possibili seguenti:
Debugger
Può trattarsi di CDB o WinDbg.
Server
Si tratta del nome di rete o dell'indirizzo IP del computer in cui è stato creato il server di elaborazione. Le due barre rovesciata iniziali (\) sono facoltative nella riga di comando, ma non sono consentite nella finestra di dialogo WinDbg.
pipe= PipeName
Se viene usato il protocollo NPIPE o SPIPE, PipeName è il nome assegnato alla pipe al momento della creazione del server di elaborazione.
Se non si è connessi al computer client con un account che ha accesso al computer server, è necessario specificare un nome utente e una password. Nel computer client, in una finestra del prompt dei comandi, immettere il comando seguente.
net use \\Server\ipc$ /user:UserName
dove Server è il nome del computer server e UserName è il nome di un account che ha accesso al computer server.
Quando richiesto, immettere la password per UserName.
Al termine di questo comando, è possibile attivare un client intelligente usando l'opzione della riga di comando -premote o tramite l'interfaccia grafica WinDbg.
Nota Potrebbe essere necessario abilitare la condivisione di file e stampanti nel computer server. 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
Se viene usato il protocollo TCP o SSL, Socket è lo stesso numero di porta socket usato al momento della creazione del server di elaborazione.
clicon
Specifica che il server di elaborazione tenterà di connettersi al client intelligente tramite una connessione inversa. Il client deve usare clicon se e solo se il server utilizza clicon. Nella maggior parte dei casi, il client intelligente viene avviato prima del server di elaborazione quando viene usata una connessione inversa.
port= COMPort
Se 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
Se viene usato il protocollo COM, BaudRate deve corrispondere alla velocità di baud scelta al momento della creazione del server di elaborazione.
channel= COMChannel
Se viene usato il protocollo COM, COMChannel deve corrispondere al numero di canale scelto al momento della creazione del server di elaborazione.
proto= Protocollo
Se si usa il protocollo SSL o SPIPE, il protocollo deve corrispondere al protocollo sicuro usato al momento della creazione del server di elaborazione.
Cert
Se si usa il protocollo SSL o SPIPE, è consigliabile usare il parametro certuser=Cert o routeser=Cert usato al momento della creazione del server di elaborazione.
password= Parola d’ordine
Se è stata usata una password al momento della creazione del server di elaborazione, è necessario specificare Password per creare il client intelligente. Deve corrispondere alla password originale. Per le password viene fatta distinzione tra maiuscole e minuscole. Se viene specificata la password errata, il messaggio di errore specifica "Errore 0x80004005".
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.
Opzioni
Eventuali parametri aggiuntivi della riga di comando possono essere inseriti qui. Per un elenco completo, vedere Opzioni della riga di comando. Se si usa CDB, è necessario specificare il processo di cui si vuole eseguire il debug. Se si usa WinDbg, è possibile specificare il processo nella riga di comando o tramite l'interfaccia grafica.
Poiché il server di elaborazione funge semplicemente da gateway per il client intelligente, le opzioni aggiuntive saranno le stesse usate se si avviasse un debugger in modalità utente nello stesso computer dell'applicazione di destinazione.
Se si usa l'opzione -premote con .attach (Attach to Process) o .create (Create Process), i parametri sono uguali a quelli elencati in precedenza.
Risoluzione dei problemi
Se viene visualizzato questo messaggio: il client non usa la stessa versione del protocollo di comunicazione remota del server che indica che la versione di DbgSrv a cui si sta tentando di connettersi usa una versione del protocollo diversa rispetto alla versione di WinDbg.
Non è raro che vengano apportate modifiche al protocollo. In questo caso, assicurarsi di usare le versioni corrispondenti della versione più recente disponibile di DbgSrv e WinDbg (versione classica) o WinDbg. Per informazioni sul download della versione più recente, vedere Strumenti di debug per Windows.