CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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을 잡아야 하는 운명이랍니다.



----------------------------------------------------------
 당신이 해낼 수 있다고 생각하든, 해낼� 수 없다고 생각하든,
           당신은 항상 옳다.  - 헨리 포드 -
----------------------------------------------------------
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.