Condividi tramite


.attach (Attach to Process)

Il comando .attach si collega a una nuova applicazione di destinazione.

.attach [-premote RemoteOptions] AttachOptions PID

Parametri

RemoteOptions
Specifica un server di elaborazione a cui connettersi. Le opzioni sono uguali a quelle per l'opzione premote della riga di comando. Per informazioni dettagliate sulla sintassi, vedere Attivazione di un client intelligente.

AttachOptions
Specifica il modo in cui deve essere eseguita la connessione. È possibile includere una delle opzioni seguenti:

-b
Impedisce al debugger di richiedere un'interruzione iniziale durante il collegamento a un processo di destinazione. Ciò può essere utile se l'applicazione è già sospesa o se si vuole evitare di creare un thread di interruzione nella destinazione.

-e
Consente al debugger di connettersi a un processo già sottoposto a debug. Per informazioni dettagliate, vedere Ricollegamento all'applicazione di destinazione.

-k
Avvia una sessione di debug del kernel locale. Per informazioni dettagliate, vedere Esecuzione del debug del kernel locale.

-f
Blocca tutti i thread in tutte le applicazioni di destinazione, ad eccezione della nuova destinazione a cui è collegata. Questi thread rimarranno bloccati fino a quando non si verifica un'eccezione nel processo appena collegato. Si noti che un punto di interruzione iniziale viene qualificato come eccezione. I singoli thread possono essere annullati usando il comando ~u (Unfreeze Thread).

-r

Fa sì che il debugger avvii il processo di destinazione in esecuzione quando viene collegato. Ciò può essere utile se l'applicazione è già sospesa e si vuole riprendere l'esecuzione.

-v
Fa sì che il processo specificato venga sottoposto a debug in modo non invasivo.

PID
Specifica l'ID processo della nuova applicazione di destinazione.

Ambiente

Articolo Descrizione
Modalità solo modalità utente
Target solo debug in tempo reale
Piattaforme tutto

Osservazioni:

Questo comando può essere usato quando CDB è inattivo o se è già in esecuzione il debug di uno o più processi. Non può essere usato quando WinDbg è inattivo.

Se questo comando ha esito positivo, il debugger verrà collegato al processo specificato alla successiva esecuzione del debugger. Se questo comando viene usato più volte in una riga, l'esecuzione dovrà essere richiesta il maggior numero di volte in cui è stato usato questo comando.

Poiché l'esecuzione non è consentita durante il debug non invasivo, il debugger non è in grado di eseguire il debug in modo non invasivo di più processi alla volta. Ciò significa anche che l'uso del comando .attach -v può rendere meno utile una sessione di debug invasiva già esistente.

Più processi di destinazione verranno sempre eseguiti insieme, a meno che alcuni dei relativi thread non vengano bloccati o sospesi.

Se si vuole collegarsi a un nuovo processo e bloccare tutte le destinazioni esistenti, usare l'opzione -f . Ad esempio, è possibile eseguire il debug di un arresto anomalo in un'applicazione client e connettersi al processo del server senza consentire all'applicazione client di continuare l'esecuzione.

Se viene usata l'opzione -premote , il nuovo processo farà parte di un nuovo sistema. Per informazioni dettagliate, vedere Debug di più destinazioni.