IDebugControl::SetInterrupt 方法 (dbgeng.h)
SetInterrupt 方法注册用户中断或中断调试器。
语法
HRESULT SetInterrupt(
[in] ULONG Flags
);
参数
[in] Flags
指定要注册的中断类型。 标志 可以采用下表中列出的值之一。
值 | 说明 |
---|---|
DEBUG_INTERRUPT_ACTIVE |
如果目标正在运行,引擎将请求中断调试器。 此请求可能会超时。有关详细信息,请参阅“备注”部分。
否则,当目标挂起时,引擎将注册用户中断。 |
DEBUG_INTERRUPT_PASSIVE | 引擎将注册用户中断。 |
DEBUG_INTERRUPT_EXIT |
如果当前有一个 WaitForEvent 调用正在运行,引擎将强制它返回。 如果有任何调试器命令导致目标中执行(例如, g (Go) 和 p (Step) ),引擎将强制完成这些命令。 这不会强制中断调试器,因此目标可能不会挂起。 在这种情况下, WaitForEvent 调用将返回E_PENDING。
否则,当目标挂起时,请注册用户中断。 |
返回值
此方法也可能返回错误值。 有关更多详细信息 ,请参阅返回值 。
返回代码 | 说明 |
---|---|
|
方法成功。 |
注解
可以随时从任何线程调用此方法。 注册中断后,此方法将立即返回。
如果标志DEBUG_INTERRUPT_ACTIVE,并且中断超时,则引擎将生成综合异常事件。 此事件将发送到事件回调的 IDebugEventCallbacks::Exception 方法。 可以使用 SetInterruptTimeout 设置中断超时之前的时间量。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h) |