Hỗ trợ cho Windows Vista gói dịch vụ 1 (SP1) kết thúc vào ngày 12 tháng 7 năm 2011. Để tiếp tục nhận các bản Cập Nhật bảo mật cho Windows, hãy đảm bảo bạn đang chạy Windows Vista với gói dịch vụ 2 (SP2). Để biết thêm thông tin, hãy tham khảo trang web Microsoft này: hỗ trợ kết thúc cho một số phiên bản của Windows.
Tóm tắt
Ký hiệu gỡ lỗi Windows phải được kiểm tra sau khi khởi động trình gỡ lỗi lõi (I386kd.exe | WinDbg.exe). trình gỡ lỗi có thể tải và hiển thị dấu nhắc, nhưng nếu biểu tượng không chính xác, lệnh gỡ lỗi trong tương lai tham chiếu không đúng chức năng và biến, dẫn đến kết quả không thường xuyên. Dưới đây là một số cờ đỏ và một số phương pháp điểm kiểm tra giá trị của các biểu tượng.
Thông tin Bổ sung
Bài viết này giả định gỡ lỗi hạt nhân đang chạy và đã nạp tệp Memory.dmp hoặc được kết nối với một máy tính từ xa. Lệnh trình bày không đầy đủ tài liệu và chỉ trích từ kết quả được hiển thị.
Nội dung bài viết
-
Tải trình gỡ lỗi hạt nhân
-
Kiểm tra thời gian tạo! trình điều khiển
-
Sử dụng Link.exe để kiểm tra tạo
-
Unassembling một chức năng
-
Dịch vụ gói biểu tượng
Tải trình gỡ lỗi hạt nhân
Tải bình thường của lõi gỡ Hiển thị một thông báo sau:
KD > Hệ thống đơn bộ xử lý 0: kd > sự hệ thốngNhắc Hiển thị dưới đây cho thấy biểu tượng tệp cho tệp Ntoskrnl.exe không chính xác. Kiểm tra để đảm bảo rằng phù hợp đa bộ xử lý hoặc đơn bộ xử lý lõi và HAL được sao chép vào biểu tượng cây. Ví dụ:Symbol search path is: C:\symbolskd: crash dump initialized [c:\dump\memory.dmp]could not determine the current processor, using zeroKernel Version 1057 Free loaded @ 0x80100000Bugcheck 0000001e : c0000005 80151d5b 00000000 00000001*** Contents Deleted ***16kd> Khi trình gỡ lỗi hạt nhân tải tệp Memory.dmp, phiên bản hạt nhân cũng như số bộ xử lý được hiển thị trong vài dòng đầu tiên. Xác nhận số bộ xử lý tương ứng với lõi phù hợp và HAL. Trình điều khiển biểu tượng thông tin được hiển thị hoặc các biểu tượng được nạp hoặc chậm. Tải mẫu:Symbol search path is: C:\symbolskd: crash dump initialized [c:\dump\memory.dmp]Kernel Version 1057 Free loaded @ 0x80100000Bugcheck 0000001e : c0000005 80151d5b 00000000 00000001re-loading all kernel symbolsKD: unloading symbols for "ntoskrnl.exe"KD: deferring symbol load for "ntoskrnl.exe" at 80100000KD: 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 fc810000KD: deferring symbol load for "diskdump.sys" at fc800000KD: deferring symbol load for "hal.dll" at 80400000KD: deferring symbol load for "atapi.sys" at 80010000KD: deferring symbol load for "SCSIPORT.SYS" at 80013000KD: deferring symbol load for "Atdisk.sys" at 80001000KD: deferring symbol load for "Scsidisk.sys" at 8001b000KD: deferring symbol load for "Fastfat.sys" at 80372000Unable to read image header for Floppy.SYS at fc820000 - status c0000001*** Contents Deleted ***KD: deferring symbol load for "srv.sys" at fc9e0000KD: deferring symbol load for "ntdll.dll" at 77f80000finished re-loading all kernel symbolsNT!_PspUnhandledExceptionInSystemThread+0x18:80131ff8 b801000000 mov eax,0x1kd> Lưu ý rằng trình gỡ lỗi hạt nhân là "Không thể đọc tiêu đề ảnh Floppy.sys tại fc820000 - trạng thái c0000001." Thông báo này là bình thường do tiêu đề trình điều khiển cụ thể hiện không phải là trong bộ nhớ.
Kiểm tra thời gian tạo! trình điều khiển
Sử dụng các ! trình điều khiển lệnh vào danh sách các trình điều khiển hiện tải trong bộ nhớ. Hãy lưu ý ngày và giờ của trình điều khiển và có hoặc không có thể tải. (Mã kích thước và kích thước dữ liệu cột trong ví dụ sau đây được loại bỏ để phù hợp với chiều rộng của bài viết.)kd> !driversBase Code Size Data Size Driver Name Creation Time80100000 Ntoskrnl.exe Fri May 26 18:18:36 199580400000 Hal.dll Thu May 11 13:54:18 199580010000 Atapi.sys Tue May 23 21:01:41 199580013000 Scsiport.sys Fri May 05 23:11:06 199580001000 Atdisk.sys Fri May 05 23:10:40 19958001b000 Scsidisk.sys Fri May 05 23:11:01 199580372000 Fastfat.sys Mon May 22 23:57:13 1995fc820000 Floppy.sys Header Paged Outfc830000 Scsicdrm.sys Wed May 10 21:57:03 1995fc840000 Fs_Rec.sys Header Paged Outfc850000 Null.sys Header Paged Outfc860000 Beep.sys Header Paged Outfc870000 I8042prt.sys Fri May 05 23:10:42 1995fc880000 Mouclass.sys Fri May 05 23:10:45 1995fc890000 Kbdclass.sys Fri May 05 23:10:44 1995fc8b0000 Videoprt.sys Fri May 05 23:10:05 1995fc8a0000 S3.sys Fri May 19 21:18:06 1995fc8c0000 Vga.sys Fri May 05 23:10:10 1995fc8d0000 Msfs.sys Fri May 05 23:11:57 1995fc8e0000 Npfs.sys Fri May 05 23:11:40 1995fc900000 Ndis.sys Mon May 22 20:23:18 1995fc8f0000 El59x.sys Fri Feb 10 16:18:09 1995fc940000 Tdi.sys Fri May 05 23:13:09 1995fc920000 Nbf.sys Mon May 08 15:00:47 1995fc950000 Netbios.sys Fri May 05 23:13:19 1995fc960000 Parport.sys Header Paged Outfc970000 Parallel.sys Header Paged Outfc980000 Serial.sys Fri May 05 23:11:20 1995fc990000 Afd.sys Header Paged Outfc9a0000 Rdr.sys Wed May 17 17:18:16 1995fc9e0000 Srv.sys Wed May 24 21:56:59 1995TOTAL: 1ab460 (1709 kb) 3b7c0 ( 237 kb) ( 0 kb 0 kb)kd> Lưu ý khi tạo tệp là ngày tệp được biên soạn. Ngày này là gần tem Date\Time hồ sơ thực tế khi xem con Winnt\System32\Drivers bằng cách sử dụng trình quản lý tệp. Nếu bạn đăng ký mạng lưới nhà phát triển Microsoft (MSDN) hoặc có bộ điều khiển thiết bị Windows (DDK), công cụ Link.exe có thể được sử dụng để xác nhận rằng tệp Dbg cùng một tệp được tạo ra khi trình điều khiển đã được biên soạn. "Dấu thời gian ngày" trong ví dụ bên dưới phù hợp với "Tạo thời điểm" Netbios.sys ra ở trên. Sử dụng Link.exe để kiểm tra "dấu thời gian ngày" Dbg tệp:
Liên kết - đổ - tiêu đề \symbols\sys\netbios.dbgMicrosoft (R) COFF tập tin nhị phân Dumper phiên 3.00.5270 bản quyền (C) Microsoft Corp 1992-1995. Tất cả các quyền. Xuất tệp Netbios.dbg
chữ ký 4944 0 cờ 14C máy (i386) 306 đặc trưng2FAAE94F thời gian đóng dấu ngày thứ sáu ngày 05 23:13:19 1995
8D0B tổng số ảnh 10000 cơ sở kích thước 70A0 hình ảnh** Nội dung đã xoá ** nếu các ! trình điều khiển lệnh tạo bất kỳ dòng giống như sau, một bảng quan trọng trong xuất bản bị hỏng. Phân tích thêm biến thể không được.
Không thể đọc DosHeader tại 0583002a - trạng thái 00000000 không thể đọc DosHeader tại 0587002a - trạng thái 00000000 không thể đọc DosHeader tại 0588002a - trạng thái 00000000 không thể đọc DosHeader tại 058a002a - trạng thái 00000000 không thể đọc DosHeader tại 058c002a - trạng thái 00000000
Unassembling một chức năng
Các tệp biểu tượng cho phép gỡ lõi để tham khảo các chức năng và biến toàn cầu bằng tên. Điểm kiểm tra một số ưng chức năng để đảm bảo rằng họ tìm thích hợp. Nhiều chức năng là trình tối ưu hoá và không nhất thiết phải phù hợp với các ví dụ dưới đây. Trình tối ưu hoá chức năng được xác định bởi FPO trong dấu ngoặc đơn trong tên chức năng. Chức năng bình thường bắt đầu với ebp đẩy"hoặc" hoặc "mov eax, fs [000000000]." Cơ sở kiến thức về ngôn ngữ máy và trải nghiệm sẽ cho phép một để nhận ra các chức năng.
-
Danh sách tải mô-đun x *!
-
Danh sách các biểu tượng cho mô-đun cụ thể (ví dụ: Ntoskrnl.exe). x nt! *
-
Chọn một chức năng unassemble mà không trình tối ưu hoá. u NT! _NtUnlockFile
Biểu tượng tốt
kd> u NT!_NtUnlockFileu NT!_NtUnlockFileNT!_NtUnlockFile:80156bd8 64a100000000 mov eax,fs:[00000000]80156bde 55 push ebp80156bdf 8bec mov ebp,esp80156be1 6aff push 0xff80156be3 68200d1080 push 0x80100d2080156be8 68304f1380 push 0x80134f3080156bed 50 push eax80156bee 64892500000000 mov fs:[00000000],espkd>
Unassembly chức năng sẽ trông giống như văn bản trên; Tuy nhiên, unassembly có thể thay đổi. Nếu unassembly có vẻ thích hợp, bạn có thể cho biểu tượng đã tải đúng cho mô-đun này. Sau unassembly bắt đầu bằng "jnz NT! _NTUnlockFile + 0x22." Rõ ràng, bắt đầu một chức năng không bắt đầu với một bước hướng dẫn mã. Kiểm tra biểu tượng cây nữa.
Biểu tượng không hợp lệ
kd> u NT!_NTUnlockFileu NT!_NTUnlockFileNT!_NtUnlockFile:801574a4 7520 jnz NT!_NtUnlockFile+0x22 (801574c6)801574a6 6a00 push 0x0801574a8 8d45dc lea eax,[ebp-0x24]801574ab 50 push eax801574ac 53 push ebx801574ad ff356c361480 push dword ptr [NT!_CcNoDelay+0x4 (8014366c)]801574b3 6a01 push 0x1801574b5 ff7508 push dword ptr [ebp+0x8]
Dịch vụ gói biểu tượng
Có những lần khi nó khó để phù hợp với các biểu tượng cài đặt cụ thể. Tại một thời điểm, một dịch vụ có thể đã được thêm vào yêu cầu sao chép các tệp từ đĩa CD-ROM cài đặt Windows, sao chép trong tệp được Cập Nhật với gói dịch vụ. Đảm bảo rằng bạn áp dụng lại các gói dịch vụ và bất kỳ bên thứ ba hỗ trợ đĩa sau khi thay đổi thiết lập hệ thống, sao chép tệp từ đĩa CD cài đặt Windows. Biểu tượng sẽ được áp dụng theo thứ tự làm việc.
THÔNG TIN BỔ SUNG
Tìm nhóm lõi gỡ lỗi làm thế nào để các bài viết, tìm kiếm từ khóa: debugref. WinDbg 2.0.x biểu tượng kỹ thuật Trong phiên bản Trình gỡ lỗi 2.0.x trở lên của Microsoft Debuggers có các biểu tượng xác minh bước có thể được sử dụng. Để biết thêm thông tin, hãy tham khảo để Microsoft Web site sau của: