윈도우 프로그래밍

First Chance Exception

하늘흐늘 2009. 4. 24. 16:29
반응형

SEH(Structured Exception Handler)가 처리하는 Structured Exception을 처리하는 과정에서 디버거가 제공해 주는 정보의 일종입니다. 제가 이해한 동작 메카니즘은 아래와 같습니다.

1. <OS> Exception 발생
2. <Debugger> 발생된 Exception 인식
3. <Debugger> First Chance Exception 메세지 발생
4. <API> Exception Handling
5. <Debugger> 
     if {Exception이 정상 처리?}
        프로그램 계속 동작
     else
        Second Chance Exception 메세지 발생 //Release모드로 컴파일되어서 작동시 프로그램 Crash를 의미함


내용을 읽다보면 이 API가 Win32API를 의미하는 것인지 유저가 만든 API를 의미하는 것인지 조금 모호하기는 합니다. 즉, 디버거가 Win32API 내부의 에러까지도 이렇게 표시하는지 조금 궁금합니다. 물론... 귀찮니즘으로 필요한 만큼만 찾아보았습니당~
부연 설명하자면, First Chance Exception은 예외발생에 대한 통지를 의미하며 Second Chance Exception 메세지가 없을시 처리되었음을 의미하는 것입니다. 뭐... 민감한 프로그래머를 위한 메시지라고나 할까요...?


제가 참조한 주요 사이트는 아래와 같습니다. 
디버그랩 문답:  http://www.debuglab.com/board/board_detail.aspx?id=128&table=qna&pagenum=10
MS 고객지원: http://support.microsoft.com/default.aspx?kbid=105675 
Exception 디버깅설정법, becuse님 포스트: http://blog.naver.com/li0129?Redirect=Log&logNo=60018574262
Exception에 대한 디버거의 처리동작에 대한 내용을 해석하고 있는 JS님의 포스트: http://seba702.egloos.com/2020330  

반응형