Visual Studio에서 "First Chance Exception"이 발생할 때가 있다.
이건 또 뭔소리여... 첫번째 기회 예외??
대략 인터넷을 뒤져 보니 이런 뜻이더군... 맞게 이해했나 모르겠다.
이건 또 뭔소리여... 첫번째 기회 예외??
대략 인터넷을 뒤져 보니 이런 뜻이더군... 맞게 이해했나 모르겠다.
- 어플리케이션이 디버그 모드로 실행될 때, 디버거는 모든 Exception 발생을 알아차릴 수 있다. (이 Exception이 Handle되든 아니든..) 이 단계를 "First Chance"라 한다.
- 만약 이 Exception이 적절하게 Handling되었다면 실제로 응용프로그램은 문제를 일으키거나 종료(Crash)되지 않을 것이다. 하지만, 디버거의 설정에 따라서 적절히 Handling된 Exception에 대해서 조차도 반응 (실행중지 및 오류메시지 발생)하도록 설정할 수 있는데, 이 것을 First-Chance Exception이라 한다.
- First-Chance Exception이 발생했으나, 실제 Release 실행시에는 별 문제가 생기지 않는다면 이것은 Exception이 발생했으나 내부적으로 Handling되었음을 의미한다. 따라서 이러한 경우 Debug모드에서 Exception이 발생했다 하더라도 큰 문제가 되지 않는다. 대부분 WinAPI 내부에서 처리되는 경우가 많다.
- 단, 이 Exception이 적절하게 Handle되지 않은 경우, Release 실행시에 실제로 오류가 발생하고 프로그램이 종료되게 된다. (Second Chance Exception) 이 단계라면 당연히 적절한 조치를 해주어야 한다.
http://blogs.msdn.com/davidklinems/archive/2005/07/12/438061.aspx
Visual Studio에서도 First-Chance Exception을 Handling하도록 (혹은 하지 않도록) 설정할 수 있다. 간혹 디버그 모드에서 디버그 실행을 시키자마자 First-Chance란 놈이 발생해서 아예 디버그 시작을 못하는 경우가 있는데 이럴 땐 First-Chance Exception을 Handle하지 않도록 설정해 주어야 한다.
http://blog.naver.com/li0129?Redirect=Log&logNo=60018574262
'C++ > Debug' 카테고리의 다른 글
Debugging Tips (2) - Access Violation 핸들링하기 (3) | 2009.02.22 |
---|---|
Debugging Tips (1) - .map 파일과 .cod 파일 분석하기 (21) | 2009.02.22 |
VS2005로 버젼 업 후 CreateProcess 중 Access Violcation 현상 (0) | 2008.09.29 |
DAMAGE: after Normal block 오류 문제 (6) | 2008.08.28 |
AfxBeginThread 로 생성한 스레드 종료시에 에러가 발생하는 경우 (5) | 2008.08.27 |