Troubleshooting

Break when an exception is

codevania 2010. 12. 3. 16:05
프로그램 실행중 갑자기 아래와 같은 에러 메세지를 내뱉는다면?
This Application has requested the Runtime to terminate it in an unusual way.
즉, 이런 다이얼로그 박스 말이다.


이 때 아마 난감할 것이다. 왜냐면 콜스택이 깨져있으니 말이다.


이런 상황은 십중팔구 abort() 때문인데, 왜 이렇게 되는지는 여기(날개의 기억)를 참조하도록 하자.


이때는 "Exception" Dialog에서 설정을 하면 예외 발생의 First chance에서 바로 잡을 수 있다.

- Menu > Debug > Exceptions... (Ctrl + Alt + E)
   아래 C++ Exceptions를 체크해 준다


- 이제부터는 그냥 디버깅 하다보면, 예외 발생시 브레이크 할 수 있다.
  그리고 우리가 원하는 예외 발생 시점에서의 콜스택을 얻을 수 있다.
  문제 해결 후에는 꺼주자... 아무래도 이게 활성화 되어있으면 좀 더 느려지겠지 ㅎ