예제 10: 프로세스에서 힙 메모리 누수 감지
이 예제에서는 Windows용 Microsoft 디버깅 도구에 포함된 도구인 GFlags 및 사용자 모드 덤프 힙(UMDH, umdh.exe)을 사용합니다.
notepad.exe힙 메모리의 누수 감지
notepad.exe 이미지 파일에 대한 사용자 모드 스택 추적 데이터베이스 (ust) 만들기 플래그를 설정합니다.
다음 명령은 GFlags를 사용하여 사용자 모드 스택 추적 데이터베이스 만들기 플래그를 설정합니다. /i 매개 변수를 사용하여 이미지 파일 및 플래그의 ust 약어를 식별합니다.
gflags /i Notepad.exe +ust
이 명령의 결과로 메모장 프로세스의 모든 새 인스턴스에 대해 사용자 모드 스택 추적이 만들어집니다.
기호 파일 경로를 설정합니다.
다음 명령은 기호 파일의 디렉터리에 대한 경로를 저장하는 환경 변수를 만듭니다.
set _NT_SYMBOL_PATH=C:\Windows\symbols
메모장을 시작합니다.
메모장 프로세스의 PID(프로세스 식별자)를 찾습니다.
Windows XP Professional 및 Windows Server 2003 운영 체제에 포함된 도구인 작업 관리자 또는 작업 목록(tasklist.exe)에서 실행 중인 프로세스의 PID를 찾을 수 있습니다. 이 예제에서 메모장 PID는 1228입니다.
UMDH를 실행합니다.
다음 명령은 UMDH(umdh.exe)를 실행합니다. -p: 매개 변수를 사용하여 이 예제에서 1228인 PID를 지정합니다. /f: 매개 변수를 사용하여 힙 덤프, notepad.dmp에 대한 출력 파일의 이름과 위치를 지정합니다.
umdh -p:1228 -f:notepad.dmp
이에 대한 응답으로 UMDH는 모든 활성 힙의 전체 덤프를 notepad.dmp 파일에 씁니다.