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 uno smart client: avviando CDB o WinDbg con l'opzione della riga di comando -premote oppure usando l'interfaccia grafica WinDbg.
Importante
Quando si usa il debug remoto, è necessario tenere presenti importanti considerazioni sulla sicurezza. Per altre informazioni, incluse le informazioni sull'abilitazione della modalità protetta, vedere Security During Remote Debugging and Security Considerations for Windows Debugging Tools.
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. Esistono le opzioni seguenti:
Metodi di connessione consigliati, con alcuni di sicurezza aggiuntivi
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]
Debugger -premote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] [Options]
metodi di connessione non sicuri
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]
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 a Remote Stub comando di menu. Quando viene visualizzata la finestra di dialogo Connetti al server Stub remoto, immettere una delle stringhe seguenti nella casella di testo Stringa di connessione:
Metodi di connessione consigliati, con alcuni di sicurezza aggiuntivi
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]
com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]
metodi di connessione non sicuri
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]
In alternativa, è possibile usare il pulsante sfoglia
Parametri
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 -premote della riga di comando o usando l'interfaccia grafica WinDbg.
Nota potrebbe essere necessario abilitare la condivisione di file e stampanti nel computer server. Nel Pannello di controllo passare a Rete e Internet > Network and Sharing Center> Impostazioni avanzate di condivisione. Selezionare Attiva condivisione file e stampanti.
port=Socket
Se viene usato il protocollo TCP o SSL, Socket corrisponde allo stesso numero di porta socket utilizzato 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 usa 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.
Se si usa il protocollo SSL o SPIPE, Protocollo deve corrispondere al protocollo sicuro usato al momento della creazione del server di elaborazione.
certificato
Se si usa il protocollo SSL o SPIPE, è consigliabile usare il parametro Certuser= Cert o Cert usato al momento della creazione del server di elaborazione.
password=password
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. Le password fanno 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
Poiché il server di elaborazione funge semplicemente da gateway per il client intelligente, le opzioni aggiuntive opzioni 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 indica che la versione di DbgSrv a cui si sta tentando di connettersi sta usando 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 Debugging Tools for Windows.