IDebugControl3::SetEngineOptions 方法 (dbgeng.h)

SetEngineOptions 方法更改引擎的选项。

语法

HRESULT SetEngineOptions(
  [in] ULONG Options
);

参数

[in] Options

指定引擎的新选项。 选项 是位集;它将替换现有符号选项。 有关引擎选项的说明,请参阅“备注”。

返回值

此方法也可能返回错误值。 有关详细信息,请参阅 返回值

返回代码 描述
S_OK
该方法成功。

言论

此方法会将引擎的选项设置为 选项中指定的选项。 与 AddEngineOptions不同,选项 位集中列出的任何符号选项都将被删除。

更改引擎选项后,该引擎通过将DEBUG_CES_ENGINE_OPTIONS标志传递给 IDebugEventCallbacks::ChangeEngineState 方法,向每个客户端的事件回调对象发送通知。

以下全局选项会影响 调试器引擎的行为:

不断 描述
DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION 如果 DbgHelp DLL 的版本与调试器引擎的版本不匹配,调试器引擎将生成警告而不是错误。
DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS 禁用对扩展的版本检查。 这将禁止调试器引擎调用 checkVersion
DEBUG_ENGOPT_ALLOW_NETWORK_PATHS 网络共享可用于加载符号和扩展。 此选项可防止引擎在调试某些系统进程时禁止网络路径,并且应谨慎使用。

如果设置了DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS,则无法设置此选项。

DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS 网络共享不能用于加载符号和扩展。 在调试某些系统进程时,引擎会尝试设置此选项。

如果设置了DEBUG_ENGOPT_ALLOW_NETWORK_PATHS,则无法设置此选项。

DEBUG_ENGOPT_NETWORK_PATHS 按位或DEBUG_ENGOPT_ALLOW_NETWORK_PATHS和DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS。
DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS 忽略加载程序在特定版本的 Windows 中生成的预期第一机会异常。

例如,此选项允许在调试 Windows 3.1 和 3.5 系统时运行 Windows 3.51 二进制文件。

DEBUG_ENGOPT_INITIAL_BREAK 在目标的初始事件中闯入调试器。
DEBUG_ENGOPT_INITIAL_MODULE_BREAK 当目标加载第一个模块时进入调试器。
DEBUG_ENGOPT_FINAL_BREAK 在目标的最终事件中闯入调试器。 在实时用户模式目标中,这是进程退出时。 它在内核模式下不起作用。
DEBUG_ENGOPT_NO_EXECUTE_REPEAT 如果给定空命令,调试器引擎不会重复最后一个命令。
DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION 阻止调试器加载无法映射其映像的模块。

调试器在调试不包含映像的微型转载时尝试加载映像。

DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS 允许调试器引擎作目标上的页面保护,以允许在只读内存部分中设置软件断点。

设置软件断点时,引擎以透明方式更改目标的内存以插入中断指令。

DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS 在实时用户模式调试中,引擎在插入和删除断点时执行额外的工作,以确保目标中的所有 线程 始终具有一致的断点状态。

当多个线程可以使用为其设置了断点的代码时,此选项非常有用。 但是,它可以引入死锁的可能性。

DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS 禁止通过调试器执行 shell 命令。

设置此选项后,无法取消设置。

DEBUG_ENGOPT_KD_QUIET_MODE 打开静默模式。 有关详细信息,请参阅 sq (设置静默模式)
DEBUG_ENGOPT_DISABLE_MANAGED_SUPPORT 禁用对托管代码的调试器引擎支持。 如果对托管代码的支持已在使用中,则此选项不起作用。
DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD 调试器不会为设置此标志时加载的模块加载符号。
DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS 阻止导致目标开始执行的任何命令。
DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING 禁止从磁盘映射映像文件。 例如,此选项在调试小型转储文件时禁止内存内容的映像映射。 此选项不会影响现有映射;它仅影响映射图像文件的后续尝试。
DEBUG_ENGOPT_PREFER_DML 默认情况下,调试器会运行 DML 增强的命令和作版本。
DEBUG_ENGOPT_DISABLESQM 禁用软件质量指标(SQM)数据的上传。

要求

要求 价值
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h)

另请参阅

AddEngineOptions

GetEngineOptions

IDebugControl

IDebugControl2

IDebugControl3

RemoveEngineOptions