IDebugControl3::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) |