메모리 누수(Leak) 진단도구

Memory Leak Diagnostic Toolkit (이하 LeakDiag)은 메모리 누수가 발생하는 응용프로그램에서 메모리 누수가 발생하는 코드의 라인을 알아내는데 유용합니다. 이 툴은 Visual Basic으로 만든 응용프로그램은 물론 C/C++ 로 만든 응용프로그램에서 메모리 누수를 찾아내는 데 유용합니다.
LeakDiag는 두가지 사용자 환경을 가지고 있습니다. 하나는 그래픽 환경(GUI) 에서 사용할 수 있는 LeakDiag.exe 와 명령프롬프트에서 사용할 수 있는 LDCmd.exe가 있습니다.
아직도 메모리 누수(Memory Leak)이 얼마나 위험한 보안 결함이 되는지는 저도 잘 모릅니다. 다만 메모리 누수는 결국 메모리 할당후 해제를 제대로 못해서 자원을 고갈시키는 원인이 되는 것이 가장 큰 문제가 될 것 같네요.

[사용법]
C:\LDcmd.exe [/log] [/p [/start] [/stop] [/dump] [/a <1-6>] [/c 0|1]]

/log     : 로그를 저장할 디렉토리를 지정합니다. 디렉토리의 끝은 반드시 \로 끝나야 합니다.
/p       :  프로세스 ID를 지정합니다.
/start   : 프로세스 추적을 시작합니다. 반드시 /p 옵션과 함께 사용해야 합니다.
/stop   : 프로세스 추적을 중지합니다. 반드시 /p 옵션과 함께 사용해야 합니다.
/dump :  현재 추적중인 프로세스의 로그파일을 생성합니다. 반드시 /p 옵션과 함께 사용해야 합니다.

/a <1-6> :  추적할 메모리 할당 옵션을 정의합니다.

옵션은 다음과 같습니다 :

1 : Virtual Allocator (VirtualAlloc)
2 : Heap Allocator (HeapAlloc)[DEFAULT]
3 : MPHeap Allocator (MPHeap)
4 : COM AllocatorCoTaskMem (CoTask)
5 : COM Private Allocator (PrivateMemAlloc)
6 : C Runtime Allocator (msvcrt new)
/start 옵션이나 /dump 옵션과 같이 사용됩니다.

/c 0|1
로그파일을 만드는 동안 스택 정보와 연결할지 여부를 정합니다.
1은 연결하는 것이고 0은 연결하지 않는 것입니다.

(예제)
1. 로그파일이 저장될 위치를 지정합니다.
C:\ldcmd /log
E:\logs\ Set log file path to e:\logs\ (
로그파일이설정이 되었음을 알립니다. 끝에 \를 꼭 써줘야 함)
 

2. 프로세스 ID 2244 Heap Allocator 옵션으로 추적을 시작, 프로세스 ID는 리소스킷의 tlist.exe나 작업관리자에서 확인할 수 있다.

C:\ldcmd /p 2244 /start /a 2
Sent Start Tracing command for pID 2244 (
프로세스 추적이 시작되었음을 알립니다.)


3.
현재 추적중인 프로세스 ID 2244 의 로그 파일을 생성합니다.

C:\ldcmd /p 2244 /dump /a 2 /c 1
Sent Dump Log command for pID 2244 (
로그파일이 생성되었음을 알립니다.)


4.
프로세스 추적을 중지

C:\ldcmd /p 2244 /stop
Sent Stop Tracing command for pID 2244 (
프로세스 추적이 중지되었음을 알립니다.)





[파일 다운로드]
leakdiag125.msi

by coderant | 2008/01/28 17:19 | Security 일반 | 덧글(5)

Commented by mg2000 at 2008/04/11 13:02
좋은 정보 올려주셔서, 저에게 도움이 많이 되었습니다.

궁금한 것이 하나 있는데,

LeakDiag로 얻은 Log는 XML 파일인데, 이걸 보는 뷰어는 없나요?

스크린 샷을 보면, LeakDiag XML LogFile Analyzer가 있는데, 이건 어디서 구할 수 있나요?
Commented by coderant at 2008/04/13 10:55
xml된 파일은 ie 7.0에서 볼 수 있지 않나요. 제가 ie 7.0은 써보지 않아서 잘 모르겠지만 xml view같은거로 볼 수 있을 겁니다.
LeakDiag XML LogFile Analyzer는 저도 찾아보도록 하겠습니다.
Commented by mg2000 at 2008/04/15 09:18
IE7.0으로 보는 것은 단순히 XML소스를 보는 것 밖에 안되는 것 같습니다. ㅜ.ㅜ
Commented by 보라돌이 at 2009/10/12 17:15
이미지에 보여지는 프로그램은 LDParser라는 MS Premier 고객에게만 제공되는 툴입니다. 오픈된 프로그램 중 LDGrapher라는 프로그램이 유사한 기능을 제공합니다.
http://kuaaan.tistory.com/164
참고하세요. ^^
Commented by coderant at 2009/10/13 00:09
좋은 정보 주셔서 감사합니다
※ 로그인 사용자만 덧글을 남길 수 있습니다.

◀ 이전 페이지          다음 페이지 ▶