반응형
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
반응형
'윈도우 프로그래밍' 카테고리의 다른 글
Low Fragementation Heap(LFH) (0) | 2009.07.03 |
---|---|
Win32 ThreadPool (0) | 2009.07.03 |
OLE DB의 클래스 역활 (0) | 2009.06.14 |
Fiber [beta] (0) | 2009.05.13 |
UDP, recvfrom()에서 WSAECONNRESET(10054) 에러 날 때... (0) | 2009.04.30 |
SetEvent(..) & 멀티쓰레드 버그 (0) | 2009.04.28 |
Win32 과연 어떤 Timer함수를 사용할 것인가? (0) | 2009.04.24 |
Lua R6034 Runtime Error in Visual Studio 2008 in Vista (0) | 2009.04.18 |