본문 바로가기

C++ Programming

호출스택( call stack )이 제대로 보이지 않는 경우

주로 포인터 NULL참조를 할 때 발생하는 경우이다.

그런데, visual studio에서 콜스택을 제대로 보여주지 않은 경우가 있을 수 있다.

아래와 같은 경우이다.



이런 경우 정확히 어딘가에서 NULL포인터를 참조 하는지 알 수가 없다.

따라가보면 Library 까지 들어가기 때문에 이는 역시 어디가 문제인지 알 수가 없다.


그래서 디버그 옵션에 예외에 보면 해결할 수 있는 방법이 있다.



디버그 예외설정에 Win32 Exceptions 트리를 눌르면 Access violation이 있는데 이것을 체크해주면 정상적으로 작동이 된다. 자체 IDE에서 접근불가에 대한 crash를 깊게 라이브러리단 까지 표현해 주는 것인데, 여기서 체크를 해주면 해당코드에서 멈추게 된다. 그러면 호출 스택이 안깨지고 어디에서 Null Pointer를 참조 했는지 알 수가 있다.



(( 다중 프로세서 컴파일 옵션 때문에 깨지는 줄 알았는데........아니여서 다행...... /MP옵션 ))