Freigeben über


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:

  1. IDebugEngineCreateEvent2 (sofern es noch nicht für eine bestimmte Instanz des Debugmoduls gesendet wurden)

  2. IDebugProgramCreateEvent2

  3. IDebugLoadCompleteEvent2

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.

Siehe auch

Referenz

IDebugEngine2

IDebugProgramNode2

IDebugProgram2

IDebugEventCallback2

ATTACH_REASON

IDebugEngineCreateEvent2

IDebugProgramCreateEvent2

IDebugLoadCompleteEvent2

IDebugEntryPointEvent2