启动后发送启动事件

调试引擎(DE)附加到程序后,它会将一系列启动事件发送回调试会话。

发回调试会话的启动事件包括:

  • 引擎创建事件。

  • 程序创建事件。

  • 线程创建和模块加载事件。

  • 加载完成事件,在加载代码并准备好运行代码时发送,但在执行任何代码之前。

    注意

    继续此事件后,将初始化全局变量并运行启动例程。

  • 可能的其他线程创建和模块加载事件。

  • 入口点事件,指示程序已到达其主入口点,如 MainWinMain。 如果 DE 附加到正在运行的程序,则通常不会发送此事件。

    以编程方式,DE 首先发送会话调试管理器 (SDM) IDebugEngineCreateEvent2 接口,该接口表示引擎创建事件,后跟一个 IDebugProgramCreateEvent2,该接口表示程序创建事件。

    这些事件通常后跟一个或多个 IDebugThreadCreateEvent2 线程创建事件和 IDebugModuleLoadEvent2 模块加载事件。

    加载代码并准备好运行代码,但在执行任何代码之前,DE 会将 SDM 发送到 IDebugLoadCompleteEvent2 加载完整事件。 最后,如果程序尚未运行,DE 会发送 IDebugEntryPointEvent2 入口点事件,表明程序已到达其主入口点并已准备好进行调试。