การวิเคราะห์การดัมพ์ WinDbg หลังจาก BSOD -“ ไม่ได้รับการขัดจังหวะนาฬิกาที่คาดหวัง”


5

ประมาณหกเดือนที่ผ่านมาฉันอัพเกรดฮาร์ดแวร์คอมพิวเตอร์ - mobo ใหม่, CPU, RAM และอื่น ๆ มันทำงานเหมือนแชมป์จนกระทั่งเมื่อไม่นาน เช้านี้เมื่อฉันไปที่คอมพิวเตอร์ของฉันมันมี BSOD ฉันใช้ WinDbg เพื่อวิเคราะห์ minidump มีคนช่วยวิเคราะห์ผลลัพธ์เหล่านี้ได้ไหม

นี่คือผลลัพธ์เบื้องต้น:

Use !analyze -v to get detailed debugging information.
BugCheck 101, {31, 0, fffff88002f65180, 2}
Probably caused by : Unknown_Image ( ANALYSIS_INCONCLUSIVE )
Followup: MachineOwner

เมื่อฉันวิ่ง !analyze -v ฉันได้ผลลัพธ์ต่อไปนี้:

CLOCK_WATCHDOG_TIMEOUT (101)
An expected clock interrupt was not received on a secondary processor in an
MP system within the allocated interval. This indicates that the specified
processor is hung and not processing interrupts.
Arguments:
Arg1: 0000000000000031, Clock interrupt time out interval in nominal clock ticks.
Arg2: 0000000000000000, 0.
Arg3: fffff88002f65180, The PRCB address of the hung processor.
Arg4: 0000000000000002, 0.

Debugging Details:
------------------


BUGCHECK_STR:  CLOCK_WATCHDOG_TIMEOUT_4_PROC

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

PROCESS_NAME:  svchost.exe

CURRENT_IRQL:  d

STACK_TEXT:  
fffff880`08c33328 fffff800`02d268c9 : 00000000`00000101 00000000`00000031 00000000`00000000 fffff880`02f65180 : nt!KeBugCheckEx
fffff880`08c33330 fffff800`02cd9497 : fffff880`00000000 fffff800`00000002 00000000`00002711 00000000`00000000 : nt! ?? ::FNODOBFM::`string'+0x4e2e
fffff880`08c333c0 fffff800`02c13895 : fffff800`02c39460 fffff880`08c33570 fffff800`02c39460 00000000`00000000 : nt!KeUpdateSystemTime+0x377
fffff880`08c334c0 fffff800`02ccb173 : fffff800`02e44e80 00000000`00000001 00000000`00000001 fffff800`02c52000 : hal!HalpHpetClockInterrupt+0x8d
fffff880`08c334f0 fffff800`02ca4661 : fffff800`02e44e80 fffff800`02e52cc0 00000000`00000046 fffff800`02cca6dc : nt!KiInterruptDispatchNoLock+0x163
fffff880`08c33680 fffff800`02fd8def : 00000000`00000000 fffff880`08c33b60 00000000`00000000 fffff880`00de20b9 : nt!KeFlushProcessWriteBuffers+0x65
fffff880`08c336f0 fffff800`02fd9449 : 00000000`004d5d60 fffff800`02fc54de 00000000`00000000 fffffa80`085c1b60 : nt!ExpQuerySystemInformation+0x13af
fffff880`08c33aa0 fffff800`02ccded3 : 00000000`00000000 fffff880`08c33b60 ffffffff`fffe7960 000007fe`fcd30bd8 : nt!NtQuerySystemInformation+0x4d
fffff880`08c33ae0 00000000`77c4167a : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13
00000000`00fbefd8 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x77c4167a


STACK_COMMAND:  kb

SYMBOL_NAME:  ANALYSIS_INCONCLUSIVE

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: Unknown_Module

IMAGE_NAME:  Unknown_Image

DEBUG_FLR_IMAGE_TIMESTAMP:  0

FAILURE_BUCKET_ID:  X64_CLOCK_WATCHDOG_TIMEOUT_4_PROC_ANALYSIS_INCONCLUSIVE

BUCKET_ID:  X64_CLOCK_WATCHDOG_TIMEOUT_4_PROC_ANALYSIS_INCONCLUSIVE

Followup: MachineOwner

ข้อสันนิษฐานของฉันคือมีอาการสะอึกกับหนึ่งในโปรเซสเซอร์บน CPU ของฉัน (Intel Core i5-2400 Quad-Core) แต่ข้อผิดพลาดนี้อาจเป็นอาการของปัญหาอื่น ๆ

ฉัน Google CLOCK_WATCHDOG_TIMEOUT (101) และมีจำนวนโพสต์ในฟอรัมที่เกี่ยวข้องกับฮาร์ดแวร์ต่างๆ การอ่านผ่านบางรายการดูเหมือนว่าปัญหาไม่ได้เกี่ยวข้องกับโปรเซสเซอร์มากนัก แต่แทนที่จะเป็นอย่างอื่นในการติดตามสแต็กคือการตำหนิ (โดยทั่วไปคือไดรเวอร์) หากเป็นกรณีนี้ที่นี่ถือว่าปลอดภัยหรือไม่ KeUpdateSystemTime ผู้ร้ายคืออะไร? ฉันไม่แน่ใจว่าฉันกำลังอ่านการติดตามสแต็กอย่างถูกต้องหรือไม่หรือฉันจะวิเคราะห์เพิ่มเติมอย่างไร

ข่าวดีก็คือว่าสิ่งนี้ได้เกิดขึ้นเพียงครั้งเดียวและยังไม่เกิดขึ้นอีกเลย! :-)

ปรับปรุง: 2011-09-12

ฉันรันคำสั่งต่อไปนี้จาก minidump:

!thread @@c++((nt!_kprcb *)0xfffff88002f65180)->CurrentThread)

และได้รับผลลัพธ์ดังนี้

GetPointerFromAddress: unable to read from fffff80002f01000
THREAD fffffa800952db60  Cid 0074.0110  Teb: 000007fffffd5000 Win32Thread: 0000000000000000 RUNNING on processor 0
Impersonation token:  fffff8a001fc0060 (Level Delegation)
GetUlongFromAddress: unable to read from fffff80002e40ba4
Owning Process            fffffa8009527060       Image:         svchost.exe
Attached Process          N/A            Image:         N/A
fffff78000000000: Unable to get shared data
Wait Start TickCount      14245338     
Context Switch Count      6898658             
ReadMemory error: Cannot get nt!KeMaximumIncrement value.
UserTime                  00:00:00.000
KernelTime                00:00:00.000
Win32 Start Address 0x000007feff54a808
Stack Init fffff88008c33c70 Current fffff88008c33830
Base fffff88008c34000 Limit fffff88008c2e000 Call 0
Priority 27 BasePriority 8 UnusualBoost 0 ForegroundBoost 0 IoPriority 2 PagePriority 5

ตามด้วยการติดตามสแต็กเดียวกันตามที่ระบุไว้ข้างต้น

คำตอบ:


2

โดยทั่วไปหนึ่งในโปรเซสเซอร์ของคุณตรวจพบว่าหนึ่งในโปรเซสเซอร์ OTHER ของคุณหยุดรับสัญญาณขัดจังหวะนาฬิกา สิ่งที่ตรวจพบเงื่อนไขจากนั้นตรวจสอบจุดบกพร่องแล้วบอกคุณว่าตัวประมวลผลตัวใดหยุดทำงาน:

fffff88002f65180, The PRCB address of the hung processor.

คำถามก็จะกลายเป็น "ตัวประมวลผลที่หยุดทำงานทำอะไรอยู่" คุณสามารถตอบได้โดยใช้คำสั่งต่อไปนี้:

!thread @@c++((nt!_kprcb *)0xfffff88002f65180)->CurrentThread)

อย่างไรก็ตามโปรดทราบว่าอาจไม่ทำงานเนื่องจากสิ่งที่คุณมีคือการถ่ายโอนข้อมูลขนาดเล็ก หากไม่ได้ผลให้กำหนดค่าระบบของคุณเพื่อสร้างการสรุปเคอร์เนลและรอให้เกิดข้อผิดพลาดอีกครั้ง

http://support.microsoft.com/kb/254649


ฉันได้กำหนดค่าเครื่องของฉันให้ทำเคอร์เนลดัมพ์แบบเต็มในอนาคต ฉันได้อัปเดตคำถามของฉันพร้อมกับผลลัพธ์ของคำสั่งที่คุณจดบันทึกไว้ด้วย คุณช่วยดูและให้ข้อเสนอแนะได้ไหม? ขอบคุณ
Scott Mitchell

1
ฉันสงสัยเล็กน้อยว่าคำสั่งใช้งานได้จริงโปรดสังเกตข้อผิดพลาดทั้งหมด ฉันสงสัยว่า mini-dump ไม่ได้มีหน่วยความจำของ PRCB faulting และผลลัพธ์ก็คือแสดงเธรดปัจจุบันให้คุณ (แทนเธรด faulting)
snoone
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.