Windows 디버그 기호 확인하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 148660 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

커널 디버거를 시작한 후에 Windows 디버그 기호를 확인해야 합니다 (I386kd.exe | Windbg.exe). 디버거가 로드 및 프롬프트 제공할 수 있지만 기호가 잘못된 경우 나중에 디버깅 명령을 적절한 함수와 가끔 결과를 안내하는 변수를 참조하지 않는. 아래 나열된 몇 가지 빨간색 플래그 및 몇 가지 메서드 기호 스폿 확인란 유효성 수 있습니다.

추가 정보

이 문서에서는 커널 디버거를 실행 중인 및 Memory.dmp 파일을 로드한 또는 원격 컴퓨터에 연결되어 있는 것으로 가정합니다. 제시된 명령이 완전히 문서화되어 및 발췌한 출력에 표시됩니다.

문서의 목차

  • 커널 디버거를 로드
  • 만든 시간 확인! 드라이버
  • Link.exe 사용하여 만든 시간 확인
  • Function unassembling
  • 서비스 팩 기호

커널 디버거를 로드

커널 디버거의 정상적인 로드 다음 대화 중 하나가 표시됩니다.
kd > 프로세서 시스템

0: kd > 다중 프로세서 시스템
아래에 표시된 프롬프트 Ntoskrnl.exe 파일 기호 파일에 잘못된 것입니다. 적절한 다중 프로세서 또는 단일 프로세서 커널, HAL 기호 트리로 복사됩니다 확인하십시오.

예:
Symbol search path is: C:\symbols
kd: crash dump initialized [c:\dump\memory.dmp]
could not determine the current processor, using zero
Kernel Version 1057 Free loaded @ 0x80100000
Bugcheck 0000001e : c0000005 80151d5b 00000000 00000001
*** Contents Deleted ***
16kd>
				
때 커널 디버거를 사용하여 커널 Memory.dmp 파일을 로드합니다 프로세서 개수 뿐만 아니라 버전 처음 몇 줄이 표시됩니다. 프로세서 개수 적절한 커널과 HAL 해당함을 확인하십시오. 해당 기호를 로드하거나 지연된 드라이버 기호 정보가 표시됩니다.

예제 로드:
Symbol search path is: C:\symbols
kd: crash dump initialized [c:\dump\memory.dmp]
Kernel Version 1057 Free loaded @ 0x80100000
Bugcheck 0000001e : c0000005 80151d5b 00000000 00000001
re-loading all kernel symbols
KD: unloading symbols for "ntoskrnl.exe"
KD: deferring symbol load for "ntoskrnl.exe" at 80100000
KD: Loaded (2248) fpo entries for image (ntoskrnl.exe)
KD: "ntoskrnl.exe" loaded 4074 symbols (80100000-801bbb80)
KD: loaded symbols for "ntoskrnl.exe"
KD: deferring symbol load for "atapi.sys" at fc810000
KD: deferring symbol load for "diskdump.sys" at fc800000
KD: deferring symbol load for "hal.dll" at 80400000
KD: deferring symbol load for "atapi.sys" at 80010000
KD: deferring symbol load for "SCSIPORT.SYS" at 80013000
KD: deferring symbol load for "Atdisk.sys" at 80001000
KD: deferring symbol load for "Scsidisk.sys" at 8001b000
KD: deferring symbol load for "Fastfat.sys" at 80372000
Unable to read image header for Floppy.SYS at fc820000 - status c0000001
*** Contents Deleted ***
KD: deferring symbol load for "srv.sys" at fc9e0000
KD: deferring symbol load for "ntdll.dll" at 77f80000
finished re-loading all kernel symbols
NT!_PspUnhandledExceptionInSystemThread+0x18:
80131ff8 b801000000       mov     eax,0x1
kd>
				
커널 디버거를 "이미지 헤더에 대한 Floppy.sys fc820000 때 - 상태 c0000001 읽을 수 없습니다." 메시지가 나타나면 참고 특정 드라이버 헤더 없는 현재 메모리에 있으므로 이 메시지는 정상입니다.

만든 시간 확인! 드라이버

사용하고 있는 ! 드라이버를 메모리에 로드된 드라이버를 현재 나열하려면 명령. 참고 날짜 및 시간을 드라이버 및 여부를 사용자가 로드할 수 있습니다. 다음 예제에서는 코드 크기 및 데이터 크기 열 문서를 너비에 맞게 제거됩니다.
kd> !drivers
Base       Code Size Data Size  Driver Name        Creation Time
80100000                       Ntoskrnl.exe   Fri May 26 18:18:36 1995
80400000                            Hal.dll   Thu May 11 13:54:18 1995
80010000                          Atapi.sys   Tue May 23 21:01:41 1995
80013000                       Scsiport.sys   Fri May 05 23:11:06 1995
80001000                         Atdisk.sys   Fri May 05 23:10:40 1995
8001b000                       Scsidisk.sys   Fri May 05 23:11:01 1995
80372000                        Fastfat.sys   Mon May 22 23:57:13 1995
fc820000                         Floppy.sys   Header Paged Out
fc830000                       Scsicdrm.sys   Wed May 10 21:57:03 1995
fc840000                         Fs_Rec.sys   Header Paged Out
fc850000                           Null.sys   Header Paged Out
fc860000                           Beep.sys   Header Paged Out
fc870000                       I8042prt.sys   Fri May 05 23:10:42 1995
fc880000                       Mouclass.sys   Fri May 05 23:10:45 1995
fc890000                       Kbdclass.sys   Fri May 05 23:10:44 1995
fc8b0000                       Videoprt.sys   Fri May 05 23:10:05 1995
fc8a0000                             S3.sys   Fri May 19 21:18:06 1995
fc8c0000                            Vga.sys   Fri May 05 23:10:10 1995
fc8d0000                           Msfs.sys   Fri May 05 23:11:57 1995
fc8e0000                           Npfs.sys   Fri May 05 23:11:40 1995
fc900000                           Ndis.sys   Mon May 22 20:23:18 1995
fc8f0000                          El59x.sys   Fri Feb 10 16:18:09 1995
fc940000                            Tdi.sys   Fri May 05 23:13:09 1995
fc920000                            Nbf.sys   Mon May 08 15:00:47 1995
fc950000                        Netbios.sys   Fri May 05 23:13:19 1995
fc960000                        Parport.sys   Header Paged Out
fc970000                       Parallel.sys   Header Paged Out
fc980000                         Serial.sys   Fri May 05 23:11:20 1995
fc990000                            Afd.sys   Header Paged Out
fc9a0000                            Rdr.sys   Wed May 17 17:18:16 1995
fc9e0000                            Srv.sys   Wed May 24 21:56:59 1995
TOTAL:   1ab460 (1709 kb)  3b7c0 ( 237 kb) (    0 kb     0 kb)
kd>
				
파일이 컴파일된 날짜가 파일의 만든 시간 유의하십시오. 이 실제 파일 Date\Time 스탬프 가깝게 파일 관리자를 사용하여 Winnt\System32\Drivers 하위 폴더를 볼 때 날짜입니다.

Microsoft 개발자 네트워크 (MSDN) 로 등록할 폴더나 드라이버를 컴파일할 때 만들어진 파일을 파일입니다 Dbg 있는 Windows 장치 드라이버 키트 (DDK를), Link.exe 있는 확인하려면 도구를 사용할 수 있을 경우. "시간 날짜 스탬프를" 아래 예제에서는 위 출력 "만들기 시간" 의 Netbios.sys 일치합니다.

Link.exe를 사용하여 "시간 날짜 스탬프를" Dbg 파일의 확인하십시오.
LINK-덤프 헤더 \symbols\sys\netbios.dbg
Microsoft (R) COFF 이진 파일 덤퍼 버전 3.00.5270
(C) Microsoft 회사 1992-1995 저작권. 1991-

덤프 파일 Netbios.dbg
4944 서명
0 플래그
14 C 컴퓨터 (i386)
306 특징
2FAAE94F 시간 날짜 스탬프 5월 금요일 05 19: 13: 23 1995
이미지의 8D0B 체크섬

이미지의 10000 기본

이미지 크기를 70A0
** 내용을 지운 **

경우 해당 ! 드라이버를 명령을 다음과 같이 보일 줄을 생성합니다, 덤프 중요한 테이블에서 손상되었습니다. 덤프 추가 분석이 불가능할 수 있습니다.
DosHeader 0583002a 때 - 상태를 읽을 수 없습니다 00000000
DosHeader 0587002a 때 - 00000000 상태를 읽을 수 없습니다.
DosHeader 0588002a 때 - 00000000 상태를 읽을 수 없습니다.
DosHeader 058a002a 때 - 00000000 상태를 읽을 수 없습니다.
DosHeader 058c002a 때 - 00000000 상태를 읽을 수 없습니다.

Function unassembling

기호 파일을 커널 디버거를 함수와 전역 변수를 이름으로 참조할 수 있습니다. 적절한 찾는 확인하십시오 unassembled 함수 두 가지 스폿이 확인하십시오. 컴파일러 최적화 및 아래 예제 반드시 맞지 않는 많은 함수입니다. 최적화된 컴파일러 함수 이름 괄호 FPO 함수를 식별할 수 있습니다.

함수 일반적으로 두 "밀어넣기 ebp" 로 시작하는 또는 "mov eax를 fs [000000000]." 기계어 및 경험을 기본 지식을 이러한 함수는 인식할 수 있게 됩니다.
  • 로드된 모듈을 나열하십시오.
    x *!
  • 예를 들어, Ntoskrnl.exe 특정 모듈의 기호를 나열하십시오.
    NT x! *
  • 즉 최적화된 컴파일러 unassemble 함수를 선택하십시오.
    u NT! _NtUnlockFile

좋은 기호

kd> u NT!_NtUnlockFile
u NT!_NtUnlockFile
NT!_NtUnlockFile:
80156bd8 64a100000000     mov     eax,fs:[00000000]
80156bde 55               push    ebp
80156bdf 8bec             mov     ebp,esp
80156be1 6aff             push    0xff
80156be3 68200d1080       push    0x80100d20
80156be8 68304f1380       push    0x80134f30
80156bed 50               push    eax
80156bee 64892500000000   mov     fs:[00000000],esp
kd>
				
그러나 함수의 unassembly 위의 텍스트 유사합니다. 그리고 있는 unassembly 변경될 수 있습니다. 해당 unassembly 적절한 경우 이 모듈에 대한 기호를 올바르게 로드한 가정할 수 있습니다.

시작되며 다음 unassembly "jnz NT! _NTUnlockFile + 0x22." 당연히 함수의 시작 부분에 점프 명령 코드를 사용하여 시작할 수 없습니다. 기호 트리가 다시 한 번 확인하십시오.

잘못된 기호

kd> u NT!_NTUnlockFile
u NT!_NTUnlockFile
NT!_NtUnlockFile:
801574a4 7520             jnz     NT!_NtUnlockFile+0x22 (801574c6)
801574a6 6a00             push    0x0
801574a8 8d45dc           lea     eax,[ebp-0x24]
801574ab 50               push    eax
801574ac 53               push    ebx
801574ad ff356c361480     push    dword ptr [NT!_CcNoDelay+0x4 (8014366c)]
801574b3 6a01             push    0x1
801574b5 ff7508           push    dword ptr [ebp+0x8]
				

서비스 팩 기호

기호를 사용하여 특정 설치에 맞게 어려울 때 경우가 있습니다. 시간 일부 지점에서 서비스는 통해 서비스 팩을 사용하여 업데이트된 파일을 복사한 Windows 설치 CD-ROM 파일을 복사하는 필요한 추가된 수 있습니다. 서비스 팩 및 타사 지원 디스크를 Windows 설치 CD -ROM에서 파일을 복사하고 시스템 설치 변경한 후 다시 적용해야 합니다. 기호 설치 순서대로 적용해야 합니다.

추가 정보

On 키워드 검색 문서 커널 디버깅 방법 일련의 찾으려면: debugref.

Windbg 2.0.x 기술 기호

디버거 버전 2.0.x 및 Microsoft 디버거 중 더 큰 추가 기호 확인 절차를 사용할 수 있습니다. 자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.
Drivers Development Kit

속성

기술 자료: 148660 - 마지막 검토: 2009년 3월 4일 수요일 - 수정: 5.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • 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 Server 3.5
  • Microsoft Windows NT Server 3.51
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Datacenter x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Small Business Server 2003 R2 Premium Edition
  • Microsoft Windows Small Business Server 2003 R2 Standard Edition
  • Microsoft Windows Small Business Server 2003, Premium Edition Service Pack 1 (SP1)
  • Microsoft Windows Small Business Server 2003 Standard Edition
  • Windows Essential Business Server 2008 Standard
  • Microsoft Windows XP 64-Bit Edition Version 2002
  • Microsoft Windows XP 64-Bit Edition Version 2003
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Home Edition N
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium)
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium) 2003
  • Microsoft Windows XP Professional N
  • Microsoft Windows XP Professional x64 Edition
  • Windows Vista Enterprise 64-bit edition
  • Windows Vista Home Basic 64-bit edition
  • Windows Vista Home Premium 64-bit edition
  • Windows Vista Ultimate 64-bit edition
  • Windows 7 Beta
  • Windows Vista Business
  • Windows Vista Business 64-bit edition
  • Windows Vista Business N
  • Windows Vista Business N 64-bit Edition
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Basic N
  • Windows Vista Home Basic N 64-bit Edition
  • Windows Vista Home Premium
  • Windows Vista Ultimate
키워드:?
kbmt kbinfo KB148660 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com