http://support.microsoft.com/kb/148660/ko
Windows 디버그 기호 확인하는 방법.
기술 자료: 148660 - 마지막 검토: 2009년 3월 4일 수요일 - 수정: 5.0
Windows 디버그 기호 확인하는 방법
이 페이지에서
요약
커널 디버거를 시작한 후에 Windows 디버그 기호를 확인해야 합니다 (I386kd.exe | Windbg.exe). 디버거가 로드 및 프롬프...
커널 디버거를 시작한 후에 Windows 디버그 기호를 확인해야 합니다 (I386kd.exe | Windbg.exe). 디버거가 로드 및 프롬프트 제공할 수 있지만 기호가 잘못된 경우 나중에 디버깅 명령을 적절한 함수와 가끔 결과를 안내하는 변수를 참조하지 않는. 아래 나열된 몇 가지 빨간색 플래그 및 몇 가지 메서드 기호 스폿 확인란 유효성 수 있습니다.
추가 정보
이 문서에서는 커널 디버거를 실행 중인 및 Memory.dmp 파일을 로드한 또는 원격 컴퓨터에 연결되어 있는 것으로 가정합니다. 제시된 명령이...
이 문서에서는 커널 디버거를 실행 중인 및 Memory.dmp 파일을 로드한 또는 원격 컴퓨터에 연결되어 있는 것으로 가정합니다. 제시된 명령이 완전히 문서화되어 및 발췌한 출력에 표시됩니다.
예:
때 커널 디버거를 사용하여 커널 Memory.dmp 파일을 로드합니다 프로세서 개수 뿐만 아니라 버전 처음 몇 줄이 표시됩니다. 프로세서 개수 적절한 커널과 HAL 해당함을 확인하십시오. 해당 기호를 로드하거나 지연된 드라이버 기호 정보가 표시됩니다.
예제 로드:
커널 디버거를 "이미지 헤더에 대한 Floppy.sys fc820000 때 - 상태 c0000001 읽을 수 없습니다." 메시지가 나타나면 참고 특정 드라이버 헤더 없는 현재 메모리에 있으므로 이 메시지는 정상입니다.
파일이 컴파일된 날짜가 파일의 만든 시간 유의하십시오. 이 실제 파일 Date\Time 스탬프 가깝게 파일 관리자를 사용하여 Winnt\System32\Drivers 하위 폴더를 볼 때 날짜입니다.
Microsoft 개발자 네트워크 (MSDN) 로 등록할 폴더나 드라이버를 컴파일할 때 만들어진 파일을 파일입니다 Dbg 있는 Windows 장치 드라이버 키트 (DDK를), Link.exe 있는 확인하려면 도구를 사용할 수 있을 경우. "시간 날짜 스탬프를" 아래 예제에서는 위 출력 "만들기 시간" 의 Netbios.sys 일치합니다.
Link.exe를 사용하여 "시간 날짜 스탬프를" Dbg 파일의 확인하십시오.
(C) Microsoft 회사 1992-1995 저작권. 1991-
덤프 파일 Netbios.dbg
경우 해당 ! 드라이버를 명령을 다음과 같이 보일 줄을 생성합니다, 덤프 중요한 테이블에서 손상되었습니다. 덤프 추가 분석이 불가능할 수 있습니다.
함수 일반적으로 두 "밀어넣기 ebp" 로 시작하는 또는 "mov eax를 fs [000000000]." 기계어 및 경험을 기본 지식을 이러한 함수는 인식할 수 있게 됩니다.
그러나 함수의 unassembly 위의 텍스트 유사합니다. 그리고 있는 unassembly 변경될 수 있습니다. 해당 unassembly 적절한 경우 이 모듈에 대한 기호를 올바르게 로드한 가정할 수 있습니다.
시작되며 다음 unassembly "jnz NT! _NTUnlockFile + 0x22." 당연히 함수의 시작 부분에 점프 명령 코드를 사용하여 시작할 수 없습니다. 기호 트리가 다시 한 번 확인하십시오.
Windbg 2.0.x 기술 기호
디버거 버전 2.0.x 및 Microsoft 디버거 중 더 큰 추가 기호 확인 절차를 사용할 수 있습니다. 자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.
문서의 목차
- 커널 디버거를 로드
- 만든 시간 확인! 드라이버
- Link.exe 사용하여 만든 시간 확인
- Function unassembling
- 서비스 팩 기호
커널 디버거를 로드
커널 디버거의 정상적인 로드 다음 대화 중 하나가 표시됩니다.kd > 프로세서 시스템
0: kd > 다중 프로세서 시스템
아래에 표시된 프롬프트 Ntoskrnl.exe 파일 기호 파일에 잘못된 것입니다. 적절한 다중 프로세서 또는 단일 프로세서 커널, HAL 기호 트리로 복사됩니다 확인하십시오. 0: kd > 다중 프로세서 시스템
예:
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>
예제 로드:
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>
만든 시간 확인! 드라이버
사용하고 있는 ! 드라이버를 메모리에 로드된 드라이버를 현재 나열하려면 명령. 참고 날짜 및 시간을 드라이버 및 여부를 사용자가 로드할 수 있습니다. 다음 예제에서는 코드 크기 및 데이터 크기 열 문서를 너비에 맞게 제거됩니다.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>
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
0 플래그
14 C 컴퓨터 (i386)
306 특징
이미지의 8D0B 체크섬
이미지의 10000 기본
이미지 크기를 70A0
** 내용을 지운 ** 이미지의 10000 기본
이미지 크기를 70A0
경우 해당 ! 드라이버를 명령을 다음과 같이 보일 줄을 생성합니다, 덤프 중요한 테이블에서 손상되었습니다. 덤프 추가 분석이 불가능할 수 있습니다.
DosHeader 0583002a 때 - 상태를 읽을 수 없습니다 00000000
DosHeader 0587002a 때 - 00000000 상태를 읽을 수 없습니다.
DosHeader 0588002a 때 - 00000000 상태를 읽을 수 없습니다.
DosHeader 058a002a 때 - 00000000 상태를 읽을 수 없습니다.
DosHeader 058c002a 때 - 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 "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 (http://www.microsoft.com/whdc/devtools/ddk/default.mspx)
본 문서의 정보는 다음의 제품에 적용됩니다.
- 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 |
'Windows > 기술과 팁' 카테고리의 다른 글
[성능] Windows Server 2008 R2 성능튜닝 가이드라인 (0) | 2012.01.02 |
---|---|
Windows 덤프 분석하기 3 (0) | 2011.11.30 |
Windows Dump 파일 분석하기 (2) | 2011.11.30 |
Win2008/Win7 기본 내장 마우스 모션 캡쳐 - psr (Problem Step Recorder) (0) | 2011.10.02 |
Windows서버에 iSCSI 연결하기 (0) | 2011.10.01 |