监视事件
可以使用 IDebugEventCallbacks 接口监视目标或调试器引擎中发生的事件。 可以使用 SetEventCallbacks 向客户端注册 IDebugEventCallbacks 对象。 每个客户端最多只能注册一个 IDebugEventCallbacks 对象。
向客户端注册 IDebugEventCallbacks 对象时,引擎将调用对象的 IDebugEventCallbacks::GetInterestMask 以确定对象感兴趣的事件。 只有对象感兴趣的事件才会发送给它。
对于每种类型的事件,引擎在 IDebugEventCallbacks 上调用相应的回调方法。 对于来自目标的事件,这些调用返回 的DEBUG_STATUS_XXX 值指定目标执行应如何进行。 引擎从它调用的每个 IDebugEventCallbacks 对象收集这些返回值,并针对优先级最高的对象执行操作。
默认情况下,来自目标的事件会中断到调试器中
默认情况下,以下事件会中断到调试器中:
断点事件
异常事件 (未在此处记录)
系统错误
来自目标的事件,默认情况下不会闯入调试器
默认情况下,以下事件不会进入调试器:
创建进程事件
退出进程事件
创建线程事件
退出线程事件
加载模块事件
卸载模块事件
内部引擎更改
以下不是实际事件,而只是内部引擎更改:
目标更改
引擎更改
引擎符号更改
会话状态更改