[ CnUnix ] in KIDS 글 쓴 이(By): aran (버섯동자) 날 짜 (Date): 1994년09월09일(금) 16시59분39초 KDT 제 목(Title): [Re] malloc 위치 알기 to diva님에게 아마도 사용하시는 컴파일러에 쏘쓰라인과 화일이름을 알려주는 __LINE__ 과 __FILE__ 이라는 내부 변수가 있을 것입니다. (mips, rs6000, sun sparc 컴파일러에는 있음) 사용예는 다음과 같습니다. ------- main() { /* dummy */ /* dummy */ /* dummy */ printf("file name = %s, line number = %d\n",__FILE__,__LINE__); /* dummy */ } ----- 위의 프로그램을 돌리면 쏘쓰 화일 이름과 printf문이 있는 라인 번호가 찍힐 것입니다. 그러면 이것을 어떻게 이용할까요? ------- #define debug_malloc(x) \ malloc(x),printf("malloc file = %s,line = %d\n",__FILE__,__LINE__); main() { char *a; a = (char *)debug_malloc(100); printf("a = %x\n",a); } ------- 위의 프로그램이 도움이 될것입니다. 물론 malloc을 debug_malloc으로 바꾸어주는 수고는 하셔야 겠지요. 이만 총총. 버섯 추신 : 저도 memory leak을 잡아야 하는 운명이랍니다. ---------------------------------------------------------- 당신이 해낼 수 있다고 생각하든, 해낼� 수 없다고 생각하든, 당신은 항상 옳다. - 헨리 포드 - ---------------------------------------------------------- |