Dumpchk.exe를 사용하여 메모리 덤프 파일을 검사하는 방법
기술 자료 ID | : | 156280 |
마지막 검토 | : | 2004년 12월 30일 목요일 |
수정 | : | 5.0 |
요약
다음 Microsoft 웹 사이트에서 Windows 제품에 대한 디버깅 도구를 다운로드할 수 있습니다.
• | Windows NT 4.0 CD-ROM:
Support\Debug\<Platform>\Dumpchk.exe |
• | Windows 2000 CD-ROM: CD-ROM의 Support\Tools 폴더에 있는 Setup.exe를 실행하여 지원 도구를 설치하십시오. 기본적으로 Dumpchk.exe는 Program Files\Support Tools 폴더에 설치됩니다. |
추가 정보
DUMPCHK [options] <CrashDumpFile> -? 명령 구문을 표시합니다. -p 유효성 검사 없이 헤더만 인쇄합니다. -v 세부 정보 표시 모드를 지정합니다. -q 빠른 테스트를 수행합니다. Windows 2000에서는 사용할 수 없습니다.Windows 2000 Dumpchk.exe 버전에서만 사용할 수 있는 추가 스위치:
-c 덤프 유효성 검사를 수행합니다. -x 추가 파일 유효성 검사를 수행합니다. 이 작업은 몇 분 정도 걸립니다. -e 덤프 검사를 수행합니다. -y <Path> 덤프 검사를 위한 기호 검색 경로를 설정합니다. 기호 검색 경로가 비어 있으면 CD-ROM이 기호에 사용됩니다. -b <Path> 덤프 검사를 위한 이미지 검색 경로를 설정합니다. 이미지 검색 경로가 비어 있으면 <SystemRoot>\system32가 이미지에 사용됩니다. -k <File> 커널 이름을 File로 설정합니다. -h <File> HAL 이름을 File로 설정합니다.Dumpchk는 메모리 덤프 파일로부터 몇 가지 기본 정보를 표시한 다음 파일에 있는 모든 가상 및 실제 주소를 확인합니다. 메모리 덤프 파일에 오류가 있으면 Dumpchk가 이러한 오류를 보고합니다. 다음은 Dumpchk 명령 출력의 예제입니다.
Filename . . . . . .memory.dmp Signature. . . . . . .PAGE ValidDump. . . . . . .DUMP MajorVersion . . . . .free system MinorVersion . . . . .1057 DirectoryTableBase . .0x00030000 PfnDataBase. . . . . .0xffbae000 PsLoadedModuleList . .0x801463d0 PsActiveProcessHead. .0x801462c8 MachineImageType . . .i386 NumberProcessors . . .1 BugCheckCode . . . . .0xc000021a BugCheckParameter1 . .0xe131d948 BugCheckParameter2 . 0x00000000 BugCheckParameter3 . 0x00000000 BugCheckParameter4 . 0x00000000 ExceptionCode. . . . .0x80000003 ExceptionFlags . . . 0x00000001 ExceptionAddress . . .0x80146e1c NumberOfRuns . . . . .0x3 NumberOfPages. . . . .0x1f5e Run #1 BasePage . . . . . 0x1 PageCount. . . . . .0x9e Run #2 BasePage . . . . . .0x100 PageCount. . . . . .0xec0 Run #3 BasePage . . . . . .0x1000 PageCount. . . . . .0x1000 ************** **************--> Validating the integrity of the PsLoadedModuleList ************** ************** **************--> Performing a complete check (^C to end) ************** ************** **************--> Validating all physical addresses ************** ************** **************--> Validating all virtual addresses ************** ************** **************--> This dump file is good! **************위에 표시된 출력의 한 부분에 오류가 있으면 덤프 파일이 손상되어 분석을 수행할 수 없습니다.
이 예제에서, 디버깅 관점에서 가장 중요한 정보는 다음과 같습니다.
MajorVersion . . . . .free system MinorVersion . . . . .1057 MachineImageType . . .i386 NumberProcessors . . .1 BugCheckCode . . . . .0xc000021a BugCheckParameter1 . .0xe131d948 BugCheckParameter2 . 0x00000000 BugCheckParameter3 . 0x00000000 BugCheckParameter4 . 0x00000000이 정보를 이용하여 발생한 커널 Stop 오류의 종류와 사용 중인 Windows의 버전을 어느 정도 확인할 수 있습니다.
이 문서의 정보는 Windows NT Resource Kit에서 가져온 것입니다. Dumpchk.exe와 다른 디버깅 유틸리티에 대한 자세한 내용은 Windows NT 3.51 Resource Kit Update 및 Update 2에서 부록 A(Appendix A)를 참조하십시오.
자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹 (http://support.microsoft.com/newsgroups/default.aspx)에 참여하시기 바랍니다.
본 문서의 정보는 다음의 제품에 적용됩니다.
• | Microsoft Windows Server 2003 Standard Edition |
• | Microsoft Windows Server 2003 Enterprise Edition |
• | Microsoft Windows Server 2003 Datacenter Edition |
• | Microsoft Windows Server 2003, Enterprise x64 Edition |
• | Microsoft Windows Server 2003, 64-Bit Datacenter Edition |
• | Microsoft Windows 2000 Server |
• | Microsoft Windows 2000 Advanced Server |
• | Microsoft Windows 2000 Professional Edition |
• | Microsoft Windows 2000 Datacenter Server |
• | Microsoft Windows NT Workstation 3.5 |
• | Microsoft Windows NT Workstation 3.51 |
• | Microsoft Windows NT Workstation 4.0 Developer Edition |
• | Microsoft Windows NT Server 3.5 |
• | Microsoft Windows NT Server 3.51 |
• | Microsoft Windows NT Server 4.0 Standard Edition |
위에서 눈여겨 볼만한 부분은
BugCheckCode . . . . .0x000000d1
BugCheckParameter1 . .0x00000000
BugCheckParameter2 . .0x00000000
BugCheckParameter3 . .0x00000000
BugCheckParameter4 . .0x00000000
위와 같은 형식의 코드입니다. 이것은 블루스크린이 떳을당시
나타나는 코드입니다.
이벤트 뷰어를 보시면 해당 메시지를 확인하실수 있습니다.
이벤트 형식: 정보
이벤트 원본: Save Dump
이벤트 범주: 없음
이벤트 ID: 1001
날짜: 200X-00-00
시간: 오전 1:44:24
사용자: N/A
컴퓨터: XXXXXX
설명:
컴퓨터가 오류 검사 후 다시 부트되었습니다. 오류 검사: 0x000000d1 (0x00000000, 0x00000000, 0x00000000, 0x00000000).
Microsoft Windows 2000 [v15.2195]. 덤프 저장 위치: C:\WINNT\MEMORY.DMP.
BugCheckCode 로 MS Support page 에서 오류검색을 하시고 뒤에 따라오는 Parameter 값들은 각각 아래와 같은
값을 나타냅니다.
1 - memory that is referenced
2 - IRQL
3 - value 0 = read operation, 1 = write operation
4 - address that referenced memory
그리고 이제 Dump 파일을 디버깅 할수있는 툴을 안내해 드리겠습니다.
필요한 파일들은 아래와 같습니다.
1. 설치된 OS 의 I386 폴더 (즉 OS CD 의 I386)
2. Symbols 파일
3. Debugging Tool
4. Memory.dmp 파일
관련 MS 페이지 : http://www.microsoft.com/whdc/devtools/debugging/default.mspx
* Symbols 파일을 구할수 있는곳은 이곳입니다. ->
http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#Windows%20symbol%20packages
위 페이지에서 해당 OS 버전별 Symbols 파일을 다운받으시기 바랍니다.
* Debugging Tool (필요한 파일은 KD.exe 또는 Windbg.exe)
대부분 시스템이 32bit 이므로 32bit 버전으로 다운 받습니다. (64bit package 도 제공합니다.)
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.3.17.0.exe
* Symbols 와 Debugging tool 은 해당 서버에 설치합니다.
네가지 자료가 모두 준비되었다면 디버깅을 시작합니다.
명령 프롬프트 상태에서 아래 명령형식으로 디버깅을 합니다.
C:\Program Files\Debugging Tools for Windows>windbg -y SymbolPath -i ImagePath -z DumpFilePath
C:\Program Files\Debugging Tools for Windows>kd -y SymbolPath -i ImagePath -z DumpFilePath
예제> kd -y SRV*c:\winnt\symbols*http://msdl.microsoft.com/download/symbols -i c:\i386 -z c:\winnt\Memory.DMP
위와 같이 완료가 되면 디버깅 결과를 보실수 있습니다.
결과에서 중요하게 보셔야 할 자료는 아래 내용들 입니다.
--------------
Use !analyze -v to get detailed debugging information.
BugCheck D1, {000000, 000, 0, 00000000}
*** ERROR: Module load completed but symbols could not be loaded for xxxx.xxxx
Probably caused by : xxxx.xxxx ( xxxx+xx )
Followup: MachineOwner
--------------
xxxx.xxx 파일이 그 문제의 파일이 됩니다 해당 파일을 문제서버에서 검색하여 충돌이나, 에러가 없는지 확인합니다.
그외 아래 정보를 보실수 있습니다.
!analyze -show 명령은 Stop 오류 코드(버그 확인 코드라고도 함)와 매개 변수를 표시합니다.
!analyze -v 명령은 자세한 정보 출력을 표시합니다.
!drivers 명령은 문제가 발생할 때 해당 컴퓨터에 로드된 드라이버의 목록을 표시합니다.
그리고 Debugging Tool 을 설치하시면 debugger.chm 파일 즉 도움말이 있습니다.
이곳을 읽어보시는 것도 많은 도움이 될듯 합니다.
'유용한_팁' 카테고리의 다른 글
FreeBSD 계정 수정하기 (0) | 2007.11.04 |
---|---|
WebKnight 2.1 [aqtronix] + 시연 동영상 (1) | 2007.11.04 |
Microsoft Windows 2003 Server 최적화 설정하기 (0) | 2007.11.01 |
META 태그 사용법 (1) | 2007.11.01 |
CISCO 라우터 show interface명령을 이용한 회선상태 분석 (1) | 2007.11.01 |
댓글