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 라고 옵션을 줬을 때만 사용하게 하면 좀 더 편할 수 도 있겠지용.


저희 과정 선배님이 올려주셔서 퍼온 자료인데 원래 누가 쓰신건지 모르겠음 ^^;;;

+ Recent posts