Condividi tramite


Metodo IDebugClient5::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 il collegamento 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 connessione 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 ha avuto esito positivo.

Osservazioni

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

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 User-Mode live.

Gli DEBUG_ATTACH_XXX flag di bit controllano il modo in cui il motore del debugger si connette a un processo in modalità utente. Per le opzioni di 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 invasive (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 (e possibilmente 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.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione dbgeng.h (include Dbgeng.h)

Vedere anche

.attach (Attach to Process)

abandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

detachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

del motore di debugger