Condividi tramite


Metodo IDebugClient5::CreateProcessAndAttach (dbgeng.h)

Il metodo CreateProcessAndAttach crea un processo da una riga di comando specificata, quindi collegarsi a un altro processo in modalità utente. Il processo creato viene sospeso e può essere eseguito solo al termine del collegamento. Ciò consente una sincronizzazione approssimativa durante il debug di processi sia client che server.

Sintassi

HRESULT CreateProcessAndAttach(
  [in]           ULONG64 Server,
  [in, optional] PSTR    CommandLine,
  [in]           ULONG   CreateFlags,
  [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à al processo locale senza usare un server di elaborazione.

[in, optional] CommandLine

Specifica la riga di comando da eseguire per creare il nuovo processo. Se CommandLine è NULL, non viene creato alcun processo e questi metodi si collegano a un processo esistente, come AttachProcess.

[in] CreateFlags

Specifica i flag da utilizzare durante la creazione del processo. Per informazioni dettagliate su questi flag, vedere DEBUG_CREATE_PROCESS_OPTIONS.CreateFlags.

[in] ProcessId

Specifica l'ID processo del processo di destinazione a cui verrà collegato il debugger. Se ProcessId è zero, il debugger verrà collegato al processo creato da CommandLine.

[in] AttachFlags

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

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.

Se CommandLine non è NULL e ProcessId non è zero, il motore creerà il processo in uno stato sospeso. Il motore riprenderà questo processo appena creato dopo che si connette correttamente al processo specificato in ProcessId.

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.

Fabbisogno

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

Vedere anche

.attach (Attach to Process)

.create (crea processo)

abandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

detachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess