[ CnUnix ] in KIDS 글 쓴 이(By): pictor (홍멍수) 날 짜 (Date): 1995년12월01일(금) 12시46분18초 KST 제 목(Title): [Q] C-language debugging?? C lang으로 된 programme이 그 구조가 복잡하면, 분석하기가 당연히 복잡한데요. 그래서 전 debugger하는 방법 비슷한 것으로서 다음과 같은 방법을 쓰는데요, main() { printf("main() is called.\n"); sub(); } sub() { printf("sub() is called\n"); sub2(); } sub2() { printf("sub2() is called\n"); } --------------------------------- 즉, subroutine에 들어갈때마다, 그 routine에 들어갔다는 것을 print하게 해서, programme의 진행상황을 알아봅니다. 그런데 이렇게 하는 것이 sub()가 많다보면 엄청난 노가다가 됩니다. printf("sub??() is called\n");을 일일이 찾아가서 variable자리 뒤에 쳐 넣는다는 것이 function이 많다보면 장난이 아닙니다. 그래서 질문드리는 것인데, 이런 작업을 자동으로 해주는 trick같은 것은 없나 하는 것입니다. subroutine에 들어갈때마다, 화면에 subroutine is called라고 하도록 말입니다. 이것이 제게는 무지 중요한 것입니다. 물론 짜증나는 질문이기도 합니다. 혹시 c compiler를 바꿔야 할까요?? --------------- 이 질문에 관계될지도 몰라서 말씀드리겠는데요. /usr/include/assert.h에는 __FILE__이라는 것이 있고, __LINE__이라는 것이 있더군요. 이는 프로그램상에서 그냥 printf("%s\n", __FILE__);이라고만 하면, 이 문장이 들어있는 file name을 print해주던데.. 이러는 것처럼 __FUNCTION__같은 것이 있어서(이런게 있을까??) print("%s\n", __FUNCTION__);라고만 치면, 그 문장이 자신이 위치한 function name을 가르쳐 주었으면 좋을 것 같습니다. |