다음을 통해 공유


sx, sxd, sxe, sxi, sxn, sxr, sx- (예외 설정)

sx 명령은 디버그 중인 애플리케이션에서 예외가 발생하거나 특정 이벤트가 발생할 때 디버거가 수행하는 작업을 제어합니다.

sx

sx{e|d|i|n} [-c "Cmd1"] [-c2 "Cmd2"] [-h] {Exception|Event|*}

sx- [-c "Cmd1"] [-c2 "Cmd2"] {Exception|Event|*}

sxr

매개 변수

-c "Cmd1"
예외 또는 이벤트가 발생할 경우 실행되는 명령을 지정합니다. 이 명령은 이 예외가 디버거로 중단되는지 여부에 관계없이 이 예외를 처리할 수 있는 첫 번째 기회가 발생할 때 실행됩니다. Cmd1 문자열을 따옴표로 묶어야 합니다. 이 문자열은 세미콜론으로 구분하는 경우 여러 명령을 포함할 수 있습니다. -c와 따옴표 붙은 명령 문자열 사이의 공간은 선택 사항입니다.

-c2"Cmd2"
예외 또는 이벤트가 발생하고 첫 번째 기회에 처리되지 않는 경우 실행되는 명령을 지정합니다. 이 명령은 이 예외가 디버거로 중단되는지 여부에 관계없이 이 예외를 처리할 수 있는 두 번째 기회가 발생할 때 실행됩니다. Cmd2 문자열을 따옴표로 묶어야 합니다. 이 문자열은 세미콜론으로 구분하는 경우 여러 명령을 포함할 수 있습니다. -c2와 따옴표 붙은 명령 문자열 사이의 공간은 선택 사항입니다.

-h
중단 상태 대신 지정된 이벤트의 처리 상태 변경합니다. Eventcc, hc, bpec 또는 ssec인 경우 -h 옵션을 사용할 필요가 없습니다.

Exception
명령이 현재 radix에서 작동하는 예외 번호를 지정합니다.

이벤트
명령이 작동하는 이벤트를 지정합니다. 이러한 이벤트는 짧은 약어로 식별됩니다. 이벤트 목록은 예외 및 이벤트 제어를 참조하세요.

*
sx에 대해 명시적으로 명명되지 않은 모든 예외에 영향을 줍니다. 명시적으로 명명된 예외 목록은 예외 및 이벤트 제어를 참조하세요.

Environment

   
모드 사용자 모드, 커널 모드
대상 라이브 디버깅만
플랫폼 모두

추가 정보

중단 상태 및 상태 처리, 모든 이벤트 코드에 대한 설명, 모든 이벤트에 대한 기본 상태 목록 및 이 상태 제어하는 다른 방법에 대한 자세한 내용은 예외 및 이벤트 제어를 참조하세요.

설명

sx 명령은 현재 프로세스에 대한 예외 목록과 예외가 아닌 모든 이벤트 목록을 표시하고 각 예외 및 이벤트에 대한 디버거의 기본 동작을 표시합니다.

sxe, sxd, sxnsxi 명령은 각 예외 및 이벤트에 대한 디버거 설정을 제어합니다.

sxr 명령은 모든 예외 및 이벤트 필터 상태를 기본 설정으로 다시 설정합니다. 예를 들어 명령이 지워지고 중단되고 계속 옵션이 기본 설정으로 다시 설정됩니다.

sx- 명령은 지정된 예외 또는 이벤트의 처리 상태 또는 중단 상태 변경하지 않습니다. 이 명령은 특정 이벤트와 연결된 첫 번째 기회 명령 또는 두 번째 기회 명령을 변경하지만 다른 것은 변경하지 않으려는 경우에 사용할 수 있습니다.

-h 옵션을 포함하는 경우(또는 cc, hc, bpec 또는 ssec 이벤트가 지정된 경우) sxe, sxd, sxnsxi 명령은 예외 또는 이벤트의 처리 상태 제어합니다. 다른 모든 경우에서 이러한 명령은 예외 또는 이벤트의 중단 상태 제어합니다.

중단 상태 설정할 때 이러한 명령은 다음과 같은 효과를 줍니다.

명령 상태 이름 Description
sxe 휴식
(사용)
이 예외가 발생하면 다른 오류 처리기가 활성화되기 전에 대상이 디버거로 즉시 중단됩니다. 이러한 종류의 처리를 첫 번째 기회 처리라고 합니다.
sxd 두 번째 기회 휴식
(사용 안 함)
디버거는 이 형식의 첫 번째 예외에 대해 중단되지 않습니다(메시지가 표시되지만). 다른 오류 처리기가 이 예외를 해결하지 않으면 실행이 중지되고 대상이 디버거로 중단됩니다. 이러한 종류의 처리를 두 번째 기회 처리라고 합니다.
sxn 출력
(알림)
이 예외가 발생하면 대상 애플리케이션이 디버거에 전혀 침입하지 않습니다. 그러나 사용자에게 이 예외를 알리는 메시지가 표시됩니다.
sxi 무시 이 예외가 발생하면 대상 애플리케이션이 디버거에 전혀 침입하지 않고 메시지가 표시되지 않습니다.

처리 상태 설정할 때 이러한 명령은 다음과 같은 효과를 줍니다.

명령 상태 이름 Description
sxe 처리 이벤트는 실행이 다시 시작될 때 처리되는 것으로 간주됩니다.
sxd,sxn,sxi 처리되지 않음 이벤트는 실행이 다시 시작될 때 처리되지 않는 것으로 간주됩니다.

이벤트가 아닌 예외와 함께 -h 옵션을 사용할 수 있습니다. ch, bpe 또는 sse와 함께 이 옵션을 사용하여 hc, bpec 또는 ssec에 대한 처리 상태 각각 설정합니다. 다른 이벤트와 함께 -h 옵션을 사용하면 아무런 효과가 없습니다.

hc, bpec 또는 ssec와 함께 -c 또는 -c2 옵션을 사용하여 지정된 명령을 각각 ch, bpe 또는 sse와 연결합니다.

다음 예제에서 sxe 명령은 액세스 위반 이벤트의 중단 상태 첫 번째 기회에 중단되도록 설정하고 해당 지점에서 실행될 첫 번째 기회 명령을 r eax로 설정하는 데 사용됩니다. 그런 다음 sx- 명령을 사용하여 처리 상태 변경하지 않고 첫 번째 명령을 r ebx로 변경합니다. 마지막으로 액세스 위반 이벤트에 대한 현재 설정을 나타내는 sx 출력의 일부가 표시됩니다.

0:000> sxe -c "r eax" av

0:000> sx- -c "r ebx" av

0:000> sx
 av - Access violation - break - not handled
       Command: "r ebx"
  . . .  

추가 정보