Ü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