IDebugEventCallbacks::ChangeEngineState 方法 (dbgeng.h)
ChangeEngineState 回调方法在状态更改时由引擎调用。
语法
HRESULT ChangeEngineState(
[in] ULONG Flags,
[in] ULONG64 Argument
);
参数
[in] Flags
指定一个位集,指示引擎状态中发生的更改的类型。 可以设置以下位标志:
值 | 说明 |
---|---|
DEBUG_CES_CURRENT_THREAD | 当前线程已更改,这意味着当前目标和当前进程可能也已更改。 |
DEBUG_CES_EFFECTIVE_PROCESSOR | 有效处理器已更改。 |
DEBUG_CES_BREAKPOINTS | 一个或多个 断点 已更改。 |
DEBUG_CES_CODE_LEVEL | 代码解释级别已更改。 |
DEBUG_CES_EXECUTION_STATUS | 执行状态已更改。 |
DEBUG_CES_ENGINE_OPTIONS | 引擎选项已更改。 |
DEBUG_CES_LOG_FILE | 日志文件已打开或关闭。 |
DEBUG_CES_RADIX | 默认基数已更改。 |
DEBUG_CES_EVENT_FILTERS | 事件筛选器已更改。 |
DEBUG_CES_PROCESS_OPTIONS | 当前进程的进程选项已更改。 |
DEBUG_CES_EXTENSIONS | 已加载或卸载扩展 DLL。 (有关详细信息,请参阅 加载调试器扩展 DLL.) |
DEBUG_CES_SYSTEMS | 已添加或删除目标。 |
DEBUG_CES_ASSEMBLY_OPTIONS | 程序集选项已更改。 |
DEBUG_CES_EXPRESSION_SYNTAX | 默认表达式语法已更改。 |
DEBUG_CES_TEXT_REPLACEMENTS | 文本替换已更改。 |
[in] Argument
提供有关引擎状态更改的其他信息。 如果在 Flags 参数中设置了多个位标志,则不使用 Argument 参数。 否则, Argument 的值的解释取决于 Flags 的值:
DEBUG_CES_CURRENT_THREAD
Argument 的值是当前引擎线程 ID,如果没有当前线程,则为 DEBUG_ANY_ID。 有关详细信息,请参阅 线程和进程。
DEBUG_CES_EFFECTIVE_PROCESSOR
Argument 的值是有效处理器的类型。
DEBUG_CES_BREAKPOINTS
Argument 的值是已更改的断点的断点 ID,如果更改了多个断点,则为DEBUG_ANY_ID。 有关详细信息,请参见断点
DEBUG_CES_CODE_LEVEL
Argument 的值是代码解释级别。
DEBUG_CES_EXECUTION_STATUS
Argument 的值是DEBUG_STATUS_XXX主题中所述的执行状态 (,) 可能与位标志DEBUG_STATUS_INSIDE_WAIT结合使用。 DEBUG_STATUS_INSIDE_WAIT是在 WaitForEvent 调用挂起时设置的。 有关详细信息,请参阅 调试会话和执行模型。
DEBUG_CES_ENGINE_OPTIONS
Argument 的值是引擎选项。
DEBUG_CES_LOG_FILE
如果已打开日志文件, 则 Argument 的值为 TRUE ;如果日志文件已关闭,则为 FALSE 。
DEBUG_CES_RADIX
Argument 的值是默认基数。
DEBUG_CES_EVENT_FILTERS
Argument 的值是已更改的事件筛选器的索引,如果更改了多个事件筛选器,则为DEBUG_ANY_ID。
DEBUG_CES_PROCESS_OPTIONS
Argument 的值是当前进程的进程选项。
DEBUG_CES_EXTENSIONS
Argument 的值为零。
DEBUG_CES_SYSTEMS
Argument 的值是已添加的目标的目标 ID,如果删除了目标,则为DEBUG_ANY_ID。
DEBUG_CES_ASSEMBLE_OPTIONS
Argument 的值是汇编选项。
DEBUG_CES_EXPRESSION_SYNTAX
Argument 的值是默认表达式语法。
DEBUG_CES_TEXT_REPLACEMENTS
Argument 的值是DEBUG_ANY_ID。
返回值
引擎会忽略返回值,除非它指示远程过程调用错误;在这种情况下,将禁用注册此 IDebugEventCallbacks 对象的客户端。
注解
只有在 IDebugEventCallbacks::GetInterestMask 返回的掩码中设置了DEBUG_EVENT_CHANGE_ENGINE_STATE标志时,引擎才会调用此方法。
有关处理事件的详细信息,请参阅 监视事件。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h) |