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)