调试引擎(DE)附加到程序后,它会将一系列启动事件发送回调试会话。
发回到调试会话的启动事件包括:
引擎创建事件。
程序创建事件。
线程创建和模块加载事件。
加载完成事件,在加载代码并准备好运行代码时发送,但在执行任何代码之前。
注释
继续此事件后,将初始化全局变量并运行启动例程。
可能的其他线程创建和模块加载事件。
入口点事件,指示程序已到达其主入口点,如 Main 或
WinMain。 如果 DE 附加到正在运行的程序,则通常不会发送此事件。以编程的方式,DE 首先发送会话调试管理器(SDM)IDebugEngineCreateEvent2接口,该接口表示引擎创建事件,后跟IDebugProgramCreateEvent2接口,该接口表示程序创建事件。
这些事件通常后跟一个或多个 IDebugThreadCreateEvent2 线程创建事件和 IDebugModuleLoadEvent2 模块加载事件。
代码加载完毕并准备运行,但在任何代码执行之前,DE 向 SDM 发送一个 IDebugLoadCompleteEvent2 加载完成事件。 最后,如果程序尚未运行,DE 会发送 IDebugEntryPointEvent2 入口点事件,表明程序已到达其主入口点并已准备好进行调试。