IDebugEngine2::Attach
Collega un motore di debug (DE) a un programma o a un programma. Chiamato dal gestore di debug della sessione (SDM) quando la de è in esecuzione in-process per SDM.
Sintassi
int Attach(
IDebugProgram2[] pProgram,
IDebugProgramNode2[] rgpProgramNodes,
uint celtPrograms,
IDebugEventCallback2 pCallback,
Enum_ATTACH_REASON dwReason
);
Parametri
pProgram
[in] Matrice di oggetti IDebugProgram2 che rappresentano i programmi a cui collegarsi. Si tratta di programmi di porta.
rgpProgramNodes
[in] Matrice di oggetti IDebugProgramNode2 che rappresentano i nodi del programma, uno per ogni programma. I nodi del programma in questa matrice rappresentano gli stessi programmi di in pProgram
. I nodi del programma vengono forniti in modo che il DE possa identificare i programmi a cui connettersi.
celtPrograms
[in] Numero di programmi e/o nodi di programma nelle pProgram
matrici e rgpProgramNodes
.
pCallback
[in] Oggetto IDebugEventCallback2 da utilizzare per inviare gli eventi di debug a SDM.
dwReason
[in] Valore dell'enumerazione ATTACH_REASON che specifica il motivo dell'associazione di questi programmi. Per altre informazioni, vedere la sezione Osservazioni.
Valore restituito
Se ha esito positivo, restituisce S_OK
; in caso contrario, restituisce un codice di errore.
Osservazioni:
Esistono tre motivi per collegarsi a un programma, come indicato di seguito:
ATTACH_REASON_LAUNCH
indica che l'oggetto DE è collegato al programma perché l'utente ha avviato il processo che lo contiene.ATTACH_REASON_USER
indica che l'utente ha richiesto in modo esplicito il DE di collegarsi a un programma (o il processo che contiene un programma).ATTACH_REASON_AUTO
indica che il DE è collegato a un programma specifico perché sta già eseguendo il debug di altri programmi in un determinato processo. Questo è anche detto collegamento automatico.Quando viene chiamato questo metodo, de deve inviare questi eventi in sequenza:
IDebugEngineCreateEvent2 (se non è già stato inviato per una determinata istanza del motore di debug)
-
Inoltre, se il motivo dell'associazione è
ATTACH_REASON_LAUNCH
, la de deve inviare l'evento IDebugEntryPointEvent2 .Dopo che DE ottiene l'oggetto IDebugProgramNode2 corrispondente al programma sottoposto a debug, è possibile eseguire una query per qualsiasi interfaccia privata.
Prima di chiamare i metodi di un nodo del programma nella matrice specificata da
pProgram
orgpProgramNodes
, la rappresentazione, se necessario, deve essere abilitata nell'interfacciaIDebugProgram2
che rappresenta il nodo del programma. In genere, tuttavia, questo passaggio non è necessario. Per altre informazioni, vedere Problemi di sicurezza.