Senden von Startereignissen nach einem Start
Sobald das Debugmodul (DE) an das Programm angefügt ist, sendet es eine Reihe von Startereignissen an die Debugsitzung zurück.
Startereignisse, die an die Debugsitzung zurückgesendet werden, umfassen:
Ein Modulerstellungsereignis.
Ein Programmerstellungsereignis.
Threaderstellungs- und Modulladeereignisse.
Ein Ladevorgangsereignis, das gesendet wird, wenn der Code geladen und ausgeführt werden kann, aber bevor code ausgeführt wird.
Hinweis
Wenn dieses Ereignis fortgesetzt wird, werden globale Variablen initialisiert und Startroutinen ausgeführt.
Mögliche andere Threaderstellungs- und Modulladeereignisse.
Ein Einstiegspunktereignis, das signalisiert, dass das Programm seinen Standard Einstiegspunkt erreicht hat, z. B. Main oder
WinMain
. Dieses Ereignis wird in der Regel nicht gesendet, wenn die DE an ein Programm angefügt wird, das bereits ausgeführt wird.Programmgesteuert sendet der DE zuerst den Sitzungsdebug-Manager (SDM) an eine IDebugEngineCreateEvent2-Schnittstelle , die ein Modulerstellungsereignis darstellt, gefolgt von einem IDebugProgramCreateEvent2, das ein Programmerstellungsereignis darstellt.
Diese Ereignisse folgen in der Regel einem oder mehreren IDebugThreadCreateEvent2-Threaderstellungsereignissen und IDebugModuleLoadEvent2-Modulladeereignissen .
Wenn der Code geladen und ausgeführt werden kann, aber bevor code ausgeführt wird, sendet die DE dem SDM ein "IDebugLoadCompleteEvent2 load complete"-Ereignis. Wenn das Programm noch nicht ausgeführt wird, sendet die DE schließlich ein IDebugEntryPointEvent2-Einstiegspunktereignis, das signalisiert, dass das Programm seinen Standard Einstiegspunkt erreicht hat und bereit für das Debuggen ist.