디버깅이 아예 안 되는 것은 아니고, '자동'이나 '조사식'에서 보여야 할 변수가 보이지 않는 상황일 때,



.ncb  파일을 삭제하고 rebuild all 해도 효과가 없다.
여러 옵션 조정 끝에 얻은 해결책은, 프로젝트 속성 > 구성 속성 > C/C++ > 최적화 옵션에서 /O2 (속도최대화) 를 /Od (사용 안 함)으로 바꾸는 것이다.

OpenCV에서 간단한 이미지 로드와 표시조차도 안 되는 걸 보면 魔가 끼었나보다... -_-

(추가) 최적화 시 디버그가 제대로 되지 않는 이유는, 최적화를 위해 코드에 변형을 가하기 때문으로 생각된다. 원래 디버그모드에서는 최적화가 off되어 있었어야 하는게 아닌가 하는 생각이 들지만.
어제 밤부터 오늘 오전까지 이어진 OpenCV 삽질의 전말은 다음과 같다:

  1. 처음에 cv에서 이미지를 로드했는데, 이미지 포인터가 null이었다. 이 때문에 경로를 재차 확인하고 이미지 파일의 포맷을 바꾸는 등 삽질을 했지만 무효.
  2. 그리고 디버그를 하다 보니 위의 문제가 발생하여 디버거에 뭔가 문제가 있음을 알았다. 즉 cvLoadImage 후에 이미지 포인터가 null로 설정됐던 것도 알고 보면 디버거의 문제였다!
  3. VS 2005에서 프로젝트 속성의 최적화를 off하여 디버거 문제 해결.
  4. 이제 이미지는 제대로 load되나 여전히 cvShowImage는 효과 없음.
  5. 원인은 마지막의 getchar()로, 대신 cvWaitKey(0); 를 사용해야 한다. cvShowImage의 화면 그리기 구현과 관계가 있을 것으로 추정된다.

즉 문제의 원인에 디버거 부분과 cvWaitKeys 부분이 함께 있었기 때문인데, 이럴 경우 가장 힘든 troubleshooting이 되는 것 같다!