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 usare per collegare il 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 il modo in cui il debugger si collega al processo di destinazione. Per informazioni dettagliate su questi flag, vedere Osservazioni.

Valore restituito

Questo metodo può anche restituire valori di errore. Per altre informazioni, vedere Valori restituiti .

Codice restituito Descrizione
S_OK
Il metodo è stato eseguito correttamente.

Commenti

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

Nota Il motore non è completamente collegato al processo finché non è stato 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 l'associazione alle destinazioni in modalità utente live, vedere Destinazioni 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 durante il collegamento a una destinazione del kernel, vedere AttachKernel.

Nella tabella seguente vengono descritti i valori di flag possibili.

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 Ripetere il collegamento a un'applicazione a cui è già collegato un debugger (e possibilmente abbandonato). Per altre informazioni sulla rinessatura alle destinazioni, vedere Riconnessa 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 quando si collega 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 (includere Dbgeng.h)

Vedi anche

.attach (Attach to Process)

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

Idebugclient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

motore del debugger