IT 취미생활.  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
Finding Memory Leaks Using the CRT Library
Visual Studio를 사용시 아래 링크를 참조하면 memory leak을 쉽게 잡을 수 있습니다.

http://msdn.microsoft.com/en-us/library/x98tx3cf.aspx


Tool을 이용하지 못 하는 경우에는,

malloc이나 free가 호출 될때 블럭 사이즈와 counter를 계산하여 free가 되지 않은 곳에
위치를 잡아두고, 프로그램이 끝날 때 출력하면 memory leak을 쉽게 잡을 수 있습니다.


static void *malloc_dbg(size)
{
    totalMemoryUsage += size;
    return malloc(size);
}

static void free_dbg(void *dst, int size)
{
    totalMemoryUsage -= size;
    free(dst);
}

void reportMemoryReport()
{
     if (!totalMemoryUsage) {
         return;
     }
     // memory leak detected! 
     //
}

뭐 대충 이런거고요.

좀도 지속적으로 써먹을꺼면, malloc 할때 #define로 malloc_dbg를 좀더 다듬어 주면 되겠네요.
malloc 위치라던지 이런걸 받아 테이블에 기억해두고 나중에 해제가 되면 테이블에서 삭제.
추후 리포트에서 memory 가 해제되지 않을을 때 출력.


기초적인 내용을 그냥 끄적 해봤습니다.

하나더 magic code를 malloc시에 넣어 buffer overflow가 발생, 메모리 경계가 넘어가는걸 체크 해보는 방법도 좋습니다.


BLOG main image
취미생활
 Notice
 Category
분류 전체보기 (191)
매일매일갱생 (83)
서버개발 (1)
임베디드개발 (12)
Programming (80)
Personal Projects (6)
유용한 프로그램 (0)
 TAGS
미라지폰 Dshow 알고리즘 개발자 Debug 출장 음식 Algorithm DVB-T Error Case VC++ isdbt 1seg project 티스토리 초대장 warning ISDB-T debugging M480 Brazil 티스토리초대 Linux english email spam mail DVB Wince5.0 Windows Mobile6.0 영어 이메일 C++ English C 서태지 퇴사 DirectShow 벨소리 변경 군대 Java It MP3
 Calendar
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
 Recent Entries
 Recent Comments
 Recent Trackbacks
 Archive
 Link Site
zextor
괴짜 프로그래머의 일상사~@@
Gag & Peace, and more..
Kazakhstan Almaty.......
Min-A
Sadgarret
Steve Yoon's log
가슴 뛰는 삶을 살아라
오스틴 파워
GUI sin
melanie parker_Lady
제레미의 TV 2.0 이야기..
 Visitor Statistics
Total :
Today :
Yesterday :
rss