监视事件

有关 调试器引擎中事件的概述,请参阅 事件

可以使用 IDebugEventCallbacks 接口监视目标或调试器引擎中发生的事件。 可以使用 SetEventCallbacks 向客户端注册 IDebugEventCallbacks 对象。 每个客户端最多只能注册一个 IDebugEventCallbacks 对象。

向客户端注册 IDebugEventCallbacks 对象时,引擎将调用对象的 IDebugEventCallbacks::GetInterestMask 以确定对象感兴趣的事件。 只有对象感兴趣的事件才会发送给它。

对于每种类型的事件,引擎在 IDebugEventCallbacks 上调用相应的回调方法。 对于来自目标的事件,这些调用返回 的DEBUG_STATUS_XXX 值指定目标执行应如何进行。 引擎从它调用的每个 IDebugEventCallbacks 对象收集这些返回值,并针对优先级最高的对象执行操作。

默认情况下,来自目标的事件会中断到调试器中

默认情况下,以下事件会中断到调试器中:

  • 断点事件

  • 异常事件 (未在此处记录)

  • 系统错误

来自目标的事件,默认情况下不会闯入调试器

默认情况下,以下事件不会进入调试器:

  • 创建进程事件

  • 退出进程事件

  • 创建线程事件

  • 退出线程事件

  • 加载模块事件

  • 卸载模块事件

内部引擎更改

以下不是实际事件,而只是内部引擎更改:

  • 目标更改

  • 引擎更改

  • 引擎符号更改

  • 会话状态更改