Freigeben über


Anfügen und Trennen an ein Programm

Zum Anfügen des Debuggers muss die richtige Abfolge von Methoden und Ereignissen mit den richtigen Attributen gesendet werden.

Abfolge von Methoden und Ereignissen

  1. Der Sitzungsdebug-Manager (SDM) ruft die OnAttach-Methode auf.

    Basierend auf dem De-Prozessmodell (Debug Engine) gibt die IDebugProgramNodeAttach2::OnAttach Methode eine der folgenden Methoden zurück, die bestimmt, was als Nächstes geschieht.

    Wenn S_FALSE das Debugmodul zurückgegeben wird, wurde das Debugmodul erfolgreich an das Programm angefügt. Andernfalls wird die Attach-Methode aufgerufen, um den Anfügungsprozess abzuschließen.

    Wenn S_OK dieser Wert zurückgegeben wird, muss der DE-Wert im selben Prozess wie das SDM geladen werden. Das SDM führt die folgenden Aufgaben aus:

    1. Ruft GetEngineInfo auf, um die Modulinformationen der DE abzurufen.

    2. Erstellt die DE gemeinsam.

    3. Anrufe anfügen.

  2. Die DE sendet ein IDebugEngineCreateEvent2 mit einem EVENT_SYNC Attribut an das SDM.

  3. Die DE sendet ein IDebugProgramCreateEvent2 mit einem EVENT_SYNC Attribut an das SDM.

  4. Die DE sendet ein IDebugLoadCompleteEvent2 mit einem EVENT_SYNC_STOP Attribut an das SDM.

    Das Trennen von einem Programm ist ein einfacher, zweistufiger Prozess, wie folgt:

  5. Die SDM ruft "Trennen" auf.

  6. Die DE sendet ein IDebugProgramDestroyEvent2.