IDebugEngine2:: Connessione
Associa un modulo di (DE) debug a un programma o ai programmi. Chiamato dall'amministratore di debug della sessione (SDM) quando il DE è in corso in esecuzione a SDM.
HRESULT Attach(
IDebugProgram2** pProgram,
IDebugProgramNode2** rgpProgramNodes,
DWORD celtPrograms,
IDebugEventCallback2* pCallback,
ATTACH_REASON dwReason
);
int Attach(
IDebugProgram2[] pProgram,
IDebugProgramNode2[] rgpProgramNodes,
uint celtPrograms,
IDebugEventCallback2 pCallback,
Enum_ATTACH_REASON dwReason
);
Parametri
pProgram
[in] Una matrice IDebugProgram2 di oggetti che rappresentano i programmi da associare. Questi sono programmi della porta.rgpProgramNodes
[in] Una matrice IDebugProgramNode2 di oggetti che rappresentano i nodi di programma, una per ogni programma. I nodi del programma in questa matrice rappresentano gli stessi programmi di in pProgram. I nodi di programma vengono forniti in modo da poter identificare il DE i programmi per connettere.celtPrograms
[in] Numero di programmi e/o dei nodi del programma in matrici di rgpProgramNodes e di pProgram .pCallback
[in] IDebugEventCallback2 Oggetto da utilizzare per inviare gli eventi di debug a SDM.dwReason
[in] Un valore ATTACH_REASON dell'enumerazione che specifica il motivo per connettere tali programmi. Per ulteriori informazioni, vedere la sezione "Note".
Valore restituito
Se l'operazione riesce, restituisce S_OK; in caso contrario, restituisce un codice di errore.
Note
Esistono tre motivi per connettersi a un programma, come segue:
ATTACH_REASON_LAUNCH indica che il DE si sta connettendo al programma in quanto l'utente ha avviato il processo che lo contiene.
ATTACH_REASON_USER indica che l'utente in modo esplicito ha richiesto il DE per connettersi a un programma o al processo che contiene un programma).
ATTACH_REASON_AUTO indica che il DE si sta connettendo a un programma particolare quanto esegue il debug di altri programmi di un determinato processo. Ciò viene chiamata auto-attaccatura.
Quando questo metodo viene chiamato, il DE necessario inviare in questi eventi:
IDebugEngineCreateEvent2 (se non è già stata inviata per una determinata istanza del motore di debug)
Inoltre, se il motivo per connettere è ATTACH_REASON_LAUNCH, il DE necessario inviare IDebugEntryPointEvent2 l'evento.
Una volta che il DE ottiene IDebugProgramNode2 l'oggetto che corrisponde al programma sottoposto a debug, è possibile eseguire query per qualsiasi interfaccia privata.
Prima di chiamare i metodi di nodo del programma della matrice fornita da pProgram o da rgpProgramNodes, la rappresentazione, se necessario, deve essere abilitata sull'interfaccia di IDebugProgram2 che rappresenta il nodo del programma. In genere, tuttavia, questo passaggio non è necessario. Per ulteriori informazioni, vedere problemi di sicurezza.