IDebugControl::SetEngineOptions 메서드(dbgeng.h)

SetEngineOptions 메서드는 엔진의 옵션을 변경합니다.

구문

HRESULT SetEngineOptions(
  [in] ULONG Options
);

매개 변수

[in] Options

엔진의 새 옵션을 지정합니다. 옵션은 비트 집합입니다. 기존 기호 옵션을 대체합니다. 엔진 옵션에 대한 설명은 비고를 참조하세요.

반환 값

이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값을 참조하세요 .

반환 코드 Description
S_OK
메서드를 성공적으로 수행했습니다.

설명

이 메서드는 엔진의 옵션을 옵션에 지정된 옵션으로 설정합니다. AddEngineOptions와 달리 옵션 비트 집합에 나열되지 않은 기호 옵션은 제거됩니다.

엔진 옵션이 변경된 후 엔진은 DEBUG_CES_ENGINE_OPTIONS 플래그를 IDebugEventCallbacks::ChangeEngineState 메서드에 전달하여 각 클라이언트의 이벤트 콜백 개체에 알림을 보냅니다.

다음 전역 옵션은 디버거 엔진의 동작에 영향을 줍니다.

상수 Description
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 비트 OR입니다.
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 디버거를 통해 셸 명령을 실행할 수 없습니다.

이 옵션을 설정한 후에는 설정할 수 없습니다.

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