IDebugEngine2::Attach
Fügt ein Debugmodul (DE) an ein Programm oder programme an. Wird vom Sitzungsdebug-Manager (SDM) aufgerufen, wenn der DE-Code in der SDM ausgeführt wird.
Syntax
int Attach(
IDebugProgram2[] pProgram,
IDebugProgramNode2[] rgpProgramNodes,
uint celtPrograms,
IDebugEventCallback2 pCallback,
Enum_ATTACH_REASON dwReason
);
Parameter
pProgram
[in] Ein Array von IDebugProgram2-Objekten , die Programme darstellen, die angefügt werden sollen. Dies sind Portprogramme.
rgpProgramNodes
[in] Ein Array von IDebugProgramNode2-Objekten , die Programmknoten darstellen, eine für jedes Programm. Die Programmknoten in diesem Array stellen dieselben Programme wie in pProgram
. Die Programmknoten werden angegeben, damit die DE die anzufügenden Programme identifizieren kann.
celtPrograms
[in] Anzahl der Programme und/oder Programmknoten in den pProgram
Arrays rgpProgramNodes
.
pCallback
[in] Das IDebugEventCallback2-Objekt , das verwendet werden soll, um Debugereignisse an das SDM zu senden.
dwReason
[in] Ein Wert aus der ATTACH_REASON-Aufzählung , der den Grund für das Anfügen dieser Programme angibt. Weitere Informationen finden Sie im Abschnitt Hinweise.
Rückgabewert
Wenn die Ausführung erfolgreich ist, wird S_OK
, andernfalls ein Fehlercode zurückgegeben.
Hinweise
Es gibt drei Gründe für das Anfügen an ein Programm, wie folgt:
ATTACH_REASON_LAUNCH
gibt an, dass die DE an das Programm angefügt ist, da der Benutzer den Prozess gestartet hat, der ihn enthält.ATTACH_REASON_USER
gibt an, dass der Benutzer die DE explizit aufgefordert hat, an ein Programm (oder den Prozess, der ein Programm enthält) anzufügen.ATTACH_REASON_AUTO
gibt an, dass die DE an ein bestimmtes Programm angefügt wird, da sie bereits andere Programme in einem bestimmten Prozess debuggen. Dies wird auch als automatisches Anfügen bezeichnet.Wenn diese Methode aufgerufen wird, muss die DE diese Ereignisse in Folge senden:
IDebugEngineCreateEvent2 (wenn es noch nicht für eine bestimmte Instanz des Debugmoduls gesendet wurde)
-
Wenn der Grund für das Anfügen ist
ATTACH_REASON_LAUNCH
, muss die DE außerdem das IDebugEntryPointEvent2-Ereignis senden.Sobald die DE das IDebugProgramNode2-Objekt abruft, das dem zu debuggenden Programm entspricht, kann es für jede private Schnittstelle abgefragt werden.
Vor dem Aufrufen der Methoden eines Programmknotens im Array, das von
pProgram
oderrgpProgramNodes
, Identitätswechsel, falls erforderlich, auf derIDebugProgram2
Schnittstelle aktiviert werden soll, die den Programmknoten darstellt. Normalerweise ist dieser Schritt jedoch nicht erforderlich. Weitere Informationen finden Sie unter "Sicherheitsprobleme".