먼저 트랩 핸들러가 간단한 예외를 처리한다. 하지만 트랩 핸들러에 의해 처리 될 수 없는 경우 예외 디스패처라는 커널 모듈에 의해 처리 된다. 먼저 커널 예외는 간단하게 예외 디스패처가 해당 예외를 잡아 이전에 살펴본 인터럽트와 동일하게 IDT에 정의된 항목들을 실행하게 된다. 다음 으로 사용자 단에서 발생한 예외의 경우는 그림 3-8로 설명 할 수 있따. 만약 처리 못하는 예외에 대한 디버깅 여부는 다음 레지스트리 키에 정의되어 있다. "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" 이 키에는 주요 값이 Auto 와 Debugger 가 있는데, Auto 의 값이 1일 경우 자동 디버거 를 실행하는 모드이다. 단 Virtual Studio 가 설치된 경우 0으로 변경 된다. Debugger 값은 처리 불가능 예외의 경우 실행 가능한 디버거의 경로를 가르키는 문자열이다. (Vista의 경우 Auto 키가 없다.) |