Überwachen von Ereignissen

Eine Übersicht über Ereignisse in der Debugger-Engine finden Sie unter Ereignisse.

Ereignisse, die in einem Ziel oder der Debugger-Engine auftreten, können mithilfe der IDebugEventCallbacks-Schnittstelle überwacht werden. Ein IDebugEventCallbacks-Objekt kann mithilfe von SetEventCallbacks bei einem Client registriert werden. Für jeden Client kann höchstens ein IDebugEventCallbacks-Objekt registriert sein.

Wenn ein IDebugEventCallbacks-Objekt bei einem Client registriert wird, ruft die Engine die IDebugEventCallbacks::GetInterestMask des Objekts auf, um zu bestimmen, an welchen Ereignissen das Objekt interessiert ist. Nur Ereignisse, an denen das Objekt interessiert ist, werden an das Objekt gesendet.

Für jeden Ereignistyp ruft die Engine eine entsprechende Rückrufmethode für IDebugEventCallbacks auf. Bei Ereignissen vom Ziel gibt der DEBUG_STATUS_XXX Wert, der von diesen Aufrufen zurückgegeben wird, an, wie die Ausführung des Ziels fortgesetzt werden soll. Die Engine sammelt diese Rückgabewerte von jedem IDebugEventCallbacks-Objekt , das sie aufruft, und handelt nach dem Objekt mit der höchsten Rangfolge.

Ereignisse vom Ziel, die standardmäßig in den Debugger einbrechen

Die folgenden Ereignisse werden standardmäßig in den Debugger unterteilt:

  • Haltepunktereignisse

  • Ausnahmeereignisse (hier nicht dokumentiert)

  • Systemfehler

Ereignisse vom Ziel, die standardmäßig nicht in den Debugger einbrechen

Die folgenden Ereignisse werden standardmäßig nicht in den Debugger unterteilt:

  • Create Process Event

  • Exit Process-Ereignis

  • Threadereignis erstellen

  • Beenden des Threadereignisses

  • Load Module-Ereignis

  • Entladen des Modulereignisses

Interne Engine-Änderungen

Im Folgenden sind keine tatsächlichen Ereignisse aufgeführt, sondern lediglich interne Engine-Änderungen:

  • Zieländerung

  • Engine-Änderung

  • Änderung des Engine-Symbols

  • Änderung des Sitzungsstatus