printf 를 이용한 Debugging Tip
다들 프로젝트 하면서 디버그 한다고 난리 브루스 리 일텐데.. gdb같은 디버거 사용하지 않으면 printf 로 콕콕 찍어가면서 하고 계시겠죠.
파일이 분할이 많아지고 어느곳에서 나오는 메세지인지 정확히 알 수 있는 방법이 있습니다.
만약 아래의 소스를 test.c 에서 test_fuc라는 함수안 12번째 라인에 삽입했다고 하면,
printf("%s, %s, %d ERROR!!\n", __FILE__, __func__, __LINE__);
위 printf문은 단순한 에러 처리에 진입했을때 나오는 나오는건데 분기가 많아서 어느 에러 문인지 정확히 찝어내기 위해서 사용했습니다.
사용된 인자들을 살펴보면 아래와 같습니다.
__FILE__
파일명__func__
해당 코드가 속한 함수명. 소문자로 적어야 합니다.__LINE__
해당 코드의 줄 번호
위의 코드는 다음과 같이 출력 됩니다.
test.c, %test_func, 12 ERROR!!
그리고 저 코드들은 #ifdef DEBUG 과 #endif 안에 넣고 컴파일 할 때 -DDEBUG 라고 옵션을 줬을 때만 사용하게 하면 좀 더 편할 수 도 있겠지용.
저희 과정 선배님이 올려주셔서 퍼온 자료인데 원래 누가 쓰신건지 모르겠음 ^^;;;
'Programming > C&C++' 카테고리의 다른 글
VS에서 메모리 누수 찾기 : Visual Leak Detector for Visual C++ (0) | 2013.11.05 |
---|---|
[C] 라이브러리 호출 (0) | 2013.08.06 |
[C] strftime 함수(시간->문자열) (0) | 2013.08.04 |
[C] string.h에 있는 함수로 한글 비교하기. (2) | 2013.05.01 |
[C]콘솔 관련 함수들~ (3) | 2013.03.14 |