Part 1 MS 기술 문서

 

(1) 요약

이 문서에서는 작은 메모리 덤프 파일을 검사하는 방법을 단계별로 설명합니다. 이 파일을 사용하면 컴퓨터가 응답을 중지한 이유를 확인할 수 있습니다.

(2) 작은 메모리 덤프 파일

작은 메모리 덤프 파일은 컴퓨터가 예기치 않게 중지된 이유를 확인할 수 있는 최소한의 유용한 정보를 기록합니다. 이 옵션을 사용하려면 부팅 볼륨에 2MB 이상의 페이징 파일이 있어야 합니다. Microsoft Windows 2000 이상을 실행하는 컴퓨터에서 Windows는 컴퓨터가 예기치 않게 중지될 때마다 새 파일을 만듭니다. 이러한 파일의 기록은 폴더에 저장됩니다.
이 덤프 파일 유형은 다음 정보를 포함합니다.

중지 메시지와 매개 변수 및 기타 데이터
로드된 드라이버 목록
중지된 프로세서에 대한 프로세서 컨텍스트(PRCB)
중지된 프로세스에 대한 프로세스 정보 및 커널 컨텍스트(EPROCESS)
중지된 스레드에 대한 프로세스 정보 및 커널 컨텍스트(ETHREAD)
중지된 스레드에 대한 커널 모드 호출 스택

작은 메모리 덤프 파일은 하드 디스크 공간이 제한된 경우 유용할 수 있습니다. 그러나 제한된 정보만 포함되기 때문에 문제가 발생했을 때 실행 중이었던 스레드가 직접적인 원인이 아닌 오류는 이 파일을 분석하여 발견할 수 없습니다.

두 번째 문제가 발생하고 Windows에서 두 번째 작은 메모리 덤프 파일을 만든 경우 Windows에서는 이전 파일을 보존합니다.

Windows에서 각 파일에 날짜가 인코딩된 고유한 파일 이름을 지정합니다.

예를 들어 Mini022900-01.dmp는 2000년 2월 29일에 생성된 첫 번째 메모리 덤프입니다. Windows는 모든 작은 메모리 덤프 파일을 %SystemRoot%Minidump 폴더에 저장합니다.

(3) 덤프 유형 구성

작은 메모리 덤프 파일을 사용하여 시작 및 복구 옵션을 구성하려면 다음과 같이 하십시오.

참고 : Microsoft Windows 버전이 다양하므로 사용하는 컴퓨터에 따라 아래 단계가 다를 수도 있습니다. 이러한 경우에는 해당 제품 설명서를 참조하여 아래 절차를 완료하십시오.

시작을 누르고 설정을 가리킨 다음 제어판을 누릅니다.
시스템을 두 번 누릅니다.
고급 탭을 누른 다음 시작 및 복구에서 설정을 누릅니다.
디버깅 정보 쓰기 목록에서 작은 메모리 덤프(64KB)를 누릅니다.
작은 메모리 덤프 파일의 폴더 위치를 변경하려면 덤프 파일 상자 또는 Windows 버전에 따라 작은 덤프 디렉터리 상자에 새 경로를 입력합니다.
작은 메모리 덤프 파일을 읽는 도구
디버깅 도구 설치
덤프 파일 열기
덤프 파일 검사

MS사의 기술 문서는 언제나 난해합니다. 이상의 내용은 MS사의 난해한 관련 문서 일부의 인용이며 보는 바와 같이 번잡하여 이해하여 실행해보기엔 절대적인 절망감만 느낄 뿐 한계와 비애에 다다르게 됩니다. 이에 아래에 더 직접적이고 간략한 설명으로 실행해 봅니다.

 

 


Part 2 자작 따라하기

시스템 사용중 심각한 에러일경우 블루 스크린이 뜨고, 메모리의 내용을 하드디스크의 %SystemRoot%MEMORY.DMP에 내용이 저장된다.(예 : c:windowsminidump) Windows의 에러 덤프파일은 대체로 MINI000000-00.DMP 와 같은 파일명으로 생성이 되며 파일명에서 000000-00 는 월,일,년(두자리문자) 와 그 당일의 일련번호(mmddyy-##)로 구성된다.

 

메모리 덤프 설정은 시작-설정-제어판-시스템-고급 탭-'시작 및 복구'에서 '설정' 버튼-'시스템 오류' 부분을 보면 여러가지 설정이 가능하다. 보통 메모리 덤프 파일 크기는 시스템 메모리에 따라 달라지지만, 일반적으로 퍼포먼스 향상을 위한 팁 등에서는 대부분 '작은 크기의 메모리 덤프(64KB)'를 선택함을 추천하고 있다. 덤프 파일이 저장될 위치도 변경 가능하지만, 이는 보통 설정값 그대로 사용한다.

여기서 우리는 메모리 덤프 파일을 읽을 수 있도록 하기 위하여 몇가지 작업을 한다.
참고로 MS사의 기술문서에는 덤프 파일을 Reading하기 위한 여러 가지 방법과 또는 덤프파일 자체의 검증을 위한 도구 툴에 대한 설명과 사용자의 OS 환경에 따른 여러 가지 선택될 부분에 대한 언급이 있으므로 이를 참고하기 바란다.

Link : http://support.microsoft.com/kb/315263/ko

 

필요한 2개의 프로그램 설치하기

시스템 사양을 참고하고 아래 사이트에서 필요한 2가지 프로그램 디버깅 툴/Symbols Package를 다운로드하여 설치 합니다.

(1) 시스템 사양

• 적용가능 운영체제
32-bit 또는 64-bit Microsoft Windows Server 2003
32-bit 또는 64-bit Windows XP, Windows 2000,
Windows NT 4.0
Windows codenamed "Longhorn".
• Microsoft Internet Explorer 5.0 이후 버젼.
• 25 MB 정도의 하드 여유 공간.

(2) Debugging Tools for Windows 32-bit Version

바로 다운받기 영문 사이트 : http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

(3) OS별 Symbols Package 디버깅을 원하는 OS 별로 Symbol을 아래 사이트 다운 받아 설치합니다. Windows XP용 Symbol은 아래와 같이 세가지로 구분되므로 사용자의 환경에 따라 구분 사용합니다.

Windows XP with Service Pack 2 symbols (Windows XP SP2) Windows XP with Service Pack 2 x86 retail symbols, all languages

Windows XP with Service Pack 1 and Service Pack 1a symbols (Windows XP SP1, SP1a) Windows XP with Service Pack 1 and Service Pack 1a x86 retail symbols, all languages

Windows XP symbols with no Service Pack (Windows XP)
Windows XP x86 retail symbols, all languages

Windows XP SP2인 경우의 예 위 링크를 경유하여 다운로드한 2개의 파일이 있다. Symbols 파일은 약 200MB이지만, 이 경우 설치 후는 약 800MB의 공간을 점유한다.

 

우선 Debugging Tools를 설치한다. 단순한 설치 과정이며 설치 디렉토리는 위 그림과 같이 Default 값으로 한다.

설치가 완료되었기에 Finish를 선택.

 

설치가 된 후 모든 프로그램에서 보면 해당 디렉토리에 WinDbg라는 Debugging의 실행파일이 등록되었음을 볼 수 있다.

다음은 Symols 패키지를 설치한다. 또한 이 웹 페이지에서 다운로드할 수 있는 Windows용 기호 패키지에 액세스할 수 있다.
리소스를 사용하려면 다운로드된 로컬 기호 또는 기호 서버 사용을 위한 기호 캐시가 상주할 디스크 드라이브에 폴더를 만들어야 한다(예: C:Symbols).
이 문서에 설명되어 있는 모든 명령에 다음 기호 경로를 사용할 수 있다.

바로 위 3라인은 MS의 문서에서 인용한 글이다. 한글로 작성되어 있지만, 한국사람인 나는 이해하기에 심히 역부족이다. 그림의 다운한 파일을 C:/Windows/symbols 디렉토리에 설치하면 된다.

설치 과정은 역시나 단순하다. c:/windows/symbols가 주어진 디렉토리 값이다.

설치가 완료되다.

앞에서 언급한 것과 같이 Symbols 디렉토리는 약 834MB를 점유한다.


2종류의 필요한 파일의 설치가 끝났다면 이제 목적하고 있는 Debugging 작업에 들어간다. WinDbg를 실행.

우선 Symbol File의 위치를 인식시키는 작업을 한다.

번호의 순서와 같이 하여 c:/windows/symbols를 선택하여 확인해 준다.

Symbols Package의 위치가 인식되었다.
파일에서 Open Crash Dump를 선택. Dump File위치를 c:/windows/minidump로 지정해 준다.

조금 시간이 지나면 분석 결과가 Text로 나타난다.

이 경우 http.sys/NVTcp.sys/NVRN.sys 등의 파일이 관련됨을 알 수 있고 분석의 결과를 공개적으로 검토한 바 "검색해보니 nForce 네트워크 관련 파일인것 같은데.. 정 속 썩이면 보드에서 랜 죽이고 랜카드 하나 추가하시는 것이 편할것 같이다." "특정 보드 드라이버가 맞네요...시작 프로그램 관련하여 정리를 한번 해보세요 바이러스 백신이나 악성 제거 프로그램 관련해서요"라는 결론을 내렸음.

MS 왈 : 다른 명령에 대한 도움말을 보거나 전체 명령 구문을 보려면 디버깅 도구의 도움말 설명서를 참조하십시오. 디버깅 도구의 도움말 설명서는 다음 위치에서 찾을 수 있습니다.


C:Program FilesDebugging Tools for WindowsDebugger.chm
bullet_22_1.gif