본문 바로가기

디버그2

디버그 모드 & 릴리즈 모드 프로젝트를 컴파일하여 실행 파일을 만드는 방법에는 디버그/릴리즈 두 가지가 있다. 디버그 빌드와 릴리즈 빌드에서 서로 실행 결과가 다른 경우, 특기 디버그 빌드에서는 괜찮은데 릴리즈 빌드에서만 오류가 발생하여 프로그램이 죽는 경우가 있는데 이런 경우는 대부분 메모리가 깨진 경우에 발생한다. 두 모드에서 동적으로 메모리를 할당하면 힙 영역에 요청한 크기만큼 메모리를 할당 받게 되는데 그 초기값이 다르다. 릴리즈 빌드의 경우 할당된 메모리 영역을 초기화하지 않는 경우 바로 할당되기 직전의 쓰레기 값이 그대로 사용되는 반면 디버그 빌드의 경우 디버거로 디버깅하는데 블록을 구분하기 위해 0xCC, 0xDD와 같은 값으로 초기화된다. 디버그 모드 실행 파일에 디버깅 정보를 삽입하여 언제든지 디버깅을 할 수 있도록.. 2010. 7. 31.
MFC에서 printf() 사용하기 MFC프로그래밍을 하다가 디버깅을 해야 하는 경우에 워낙 툴의 디버그 기능이 좋아서 굳이 printf()를 사용할 필요가 없다. 하지만 간단하게 변수값 하나 급히 본다던가 오히려 툴의 디버그기능이 더 복잡하게 느껴진다던가.. –_- 하는 경우에는 printf() 값 찍어보기가 아쉬울 때가 있다. 그래서 MFC에서 printf()함수를 가능하게 해주는 편리한 기능을 어떤분이 만들어 놓셨다 후후훗~ 어떤분인지는 모르겠지만 감사히 쓰겠나이다~ –_-;; 꾸벅 사용방법은 너무나도 간단하다. 첨부파일속에 있는 Console.h와 Console.cpp파일을 프로젝트에 추가시키고 printf()를 사용하고자 하는 cpp파일에 #include "Console.h"를 해주고 생성자에 Console::Allocate();.. 2010. 7. 16.