Condividi tramite


Metodo IDebugClient2::AttachProcess (dbgeng.h)

Il metodo AttachProcess connette il motore del debugger a un processo in modalità utente.

Sintassi

HRESULT AttachProcess(
  [in] ULONG64 Server,
  [in] ULONG   ProcessId,
  [in] ULONG   AttachFlags
);

Parametri

[in] Server

Specifica il server di elaborazione da utilizzare per connettersi al processo. Se Server è zero, il motore si connetterà a un processo locale senza usare un server di elaborazione.

[in] ProcessId

Specifica l'ID processo del processo di destinazione a cui verrà collegato il debugger.

[in] AttachFlags

Specifica i flag che controllano la modalità di collegamento del debugger al processo di destinazione. Per informazioni dettagliate su questi flag, vedere Osservazioni.

Valore restituito

Questo metodo può anche restituire valori di errore. Per altri dettagli, vedere Valori restituiti .

Codice restituito Descrizione
S_OK
Il metodo è stato eseguito correttamente.

Commenti

Questo metodo è disponibile solo per il debug in modalità utente attiva.

Nota Il motore non è completamente collegato al processo finché non viene chiamato il metodo WaitForEvent . Solo dopo che il processo ha generato un evento, ad esempio l'evento create-process, diventa disponibile nella sessione del debugger.
 
Per altre informazioni sulla creazione e la connessione a destinazioni in modalità utente live, vedere Destinazioni di live User-Mode.

I flag di bit DEBUG_ATTACH_XXX controllano il modo in cui il motore del debugger si collega a un processo in modalità utente. Per le opzioni DEBUG_ATTACH_XXX usate per il collegamento a una destinazione del kernel, vedere AttachKernel.

Nella tabella seguente vengono descritti i possibili valori di flag.

Costante Descrizione
DEBUG_ATTACH_NONINVASIVE Collegarsi alla destinazione in modo non invasivo. Per altre informazioni sul debug non invasivo, vedere Debug non invasivo (modalità utente).

Se questo flag è impostato, i flag DEBUG_ATTACH_EXISTING, DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK e DEBUG_ATTACH_INVASIVE_RESUME_PROCESS non devono essere impostati.

DEBUG_ATTACH_EXISTING Ricollegare un'applicazione a cui è già collegato un debugger (ed eventualmente abbandonato). Per altre informazioni sul ricollegamento alle destinazioni, vedere Ricollegamento all'applicazione di destinazione.

Se questo flag è impostato, gli altri flag DEBUG_ATTACH_XXX non devono essere impostati.

DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND Non sospendere i thread della destinazione quando si collega in modo non invasivo.

Se questo flag è impostato, è necessario impostare anche il flag DEBUG_ATTACH_NONINVASIVE.

DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK (Windows XP e versioni successive) Non richiedere un'interruzione iniziale durante il collegamento alla destinazione.

Se questo flag è impostato, i flag DEBUG_ATTACH_NONINVASIVE e DEBUG_ATTACH_EXISTING non devono essere impostati.

DEBUG_ATTACH_INVASIVE_RESUME_PROCESS Se questo flag è impostato, i flag DEBUG_ATTACH_NONINVASIVE e DEBUG_ATTACH_EXISTING non devono essere impostati.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione dbgeng.h (include Dbgeng.h)

Vedi anche

.attach (Connetti a processo)

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

Idebugclient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

motore debugger