事件

调试器引擎提供用于监视和响应目标中的事件的功能。 发生事件时,引擎通常会暂停目标 (通常只是短暂) ,然后通知事件的所有客户端,这些客户端反过来又指示引擎如何在目标中继续执行。

为了通知客户端某个事件,引擎会调用注册到客户端的事件回调对象。 引擎为每个事件回调提供事件的详细信息,事件回调指示引擎应如何在目标中继续执行。 当不同的事件回调提供冲突的指令时,引擎对优先级最高的指令执行操作 (查看 DEBUG_STATUS_XXX) ,这通常意味着选择涉及目标执行最少的指令。

注意 当事件回调处理事件时,目标将被挂起,调试会话可访问;但是,由于引擎在 WaitForEvent 调用期间显式等待事件,或者通过执行 g (Go) p (Step) 等命令隐式等待事件,因此事件回调无法调用 WaitForEvent,并且如果它尝试执行任何会导致调试器执行的命令,例如 g (Go) p (Step) , 引擎会将这些命令解释为有关如何继续的说明。

事件筛选器

调试器引擎还提供 事件筛选器,这是基本事件监视的更简单的替代方法。 事件筛选器提供了一些简单的规则,这些规则指定是应将事件输出到调试器的输出流中还是应中断到调试器中。 它们还可用于在事件发生时执行调试器命令。

其他信息

有关监视事件的详细信息,请参阅 监视事件