IDebugEngine2::Anfügen
Fügt eine Debug- Modul (DE) in ein Programm oder Programme an. Wird vom Debugbuild Manager der Sitzung (SDM), wenn die Ausführung DE prozessintern zum SDM ist.
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
);
Parameter
pProgram
[in] Ein Array IDebugProgram2-Objekte, die die Software darstellen, die angefügt werden soll. Hierbei handelt es programme Port.rgpProgramNodes
[in] Ein Array von Objekten, die IDebugProgramNode2 Knoten Programmierung darstellen, eines für jedes Programm. Die Programmierung der Knoten in diesem Array stellen die gleichen wie in Programme pProgramdar. Die Knoten Programm angegeben sind, damit DE Programme identifizieren kann, um angefügt werden soll.celtPrograms
[in] Anzahl von Programmen und/oder Programm in den Knoten pProgram und rgpProgramNodes Arrays.pCallback
[in] Das Debuggen von Ereignissen verwendet werden soll IDebugEventCallback2-Objekt in den SDM zu senden.dwReason
[in] Ein Wert aus der ATTACH_REASON-Enumeration, der den Grund für das Anfügen dieser Programme angibt. Weitere Informationen finden Sie im Abschnitt "Hinweise".
Rückgabewert
Bei Erfolg gibt S_OKzurück. andernfalls gibt einen Fehlercode zurück.
Hinweise
Drei Gründe sprechen für das Anfügen an ein Programm wie folgt:
DEATTACH_REASON_LAUNCH gibt an, dass dem Programm angefügt werden, weil der Benutzer den Vorgang ausgelöst hat, der sie enthält.
ATTACH_REASON_USER gibt an, dass der Benutzer explizit angefordert hat, DE zu einem Programm (oder den Prozess anzufügen, der ein Programm enthält).
DE gibtATTACH_REASON_AUTO Anfügen an ein bestimmtes Programm, da es bereits andere Programme in einem bestimmten Prozess gedebuggt wird. Dies wird auch selbstklebend aufgerufen.
Wenn diese Methode aufgerufen wird, muss diese Ereignisse DE nacheinander senden:
IDebugEngineCreateEvent2 (sofern es noch nicht für eine bestimmte Instanz des Debugmoduls gesendet wurden)
Wenn der Grund für das Anfügen ATTACH_REASON_LAUNCHist, muss das DE IDebugEntryPointEvent2-Ereignis senden.
Sobald das DE IDebugProgramNode2 entsprechend dem Objekt abrufen, das Programm gedebuggt wird, kann es für jede private Schnittstelle abgefragt werden.
Bevor Sie die Methoden eines Programms pProgram Knotens im angegebenen Array oder rgpProgramNodesaufruft, sollte der Identitätswechsel auf der IDebugProgram2-Schnittstelle nach Bedarf aktiviert sind, die den Knoten Programm darstellt. Normalerweise diesem Schritt ist jedoch nicht erforderlich. Weitere Informationen finden Sie unter Sicherheitsprobleme.