Метод 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 Модуль отладчика создает предупреждение вместо ошибки, если версия БИБЛИОТЕКи 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 (Set Quiet Mode).
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 (include Dbgeng.h)

См. также

AddEngineOptions

GetEngineOptions

IDebugControl

IDebugControl2

IDebugControl3

RemoveEngineOptions