코스웨어/12년 내장형하드웨어
디버그용 printf 찍을 때 tip
알 수 없는 사용자
2013. 6. 19. 16:15
728x90
반응형
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 라고 옵션을 줬을 때만 사용하게 하면 좀 더 편할 수 도 있겠지용.
728x90