본문 바로가기
코스웨어/12년 내장형하드웨어

디버그용 printf 찍을 때 tip

by 알 수 없는 사용자 2013. 6. 19.
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

'코스웨어 > 12년 내장형하드웨어' 카테고리의 다른 글

근황  (0) 2013.08.02
매크로를 이용한 디버깅 메세지 출력  (0) 2013.07.30
소스 작성의 나쁜 예..  (4) 2013.07.04
으앙  (6) 2013.06.20
대소식!!  (5) 2013.06.18
문자열 파싱  (3) 2013.06.14
입사 3개월  (7) 2013.06.07
일하다 말고.. 간단한 리눅스 팁 몇 개..  (4) 2013.06.04