Поделиться через


Метод IDebugControl2::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 Подсистема отладчика создает предупреждение вместо ошибки, если версия библиотеки DLL DbgHelp не соответствует версии подсистемы отладчика.
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.51 при отладке систем Windows 3.1 и 3.5.

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 Запретить выполнение команд оболочки через отладчик.

После установки этого параметра его нельзя отменить.

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