Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows 10

วิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินด้วย WinDbg และ BlueScreenView

Blue Screen of Death (BSoD) ของ Windows มาเยี่ยมเราทุกคนบางครั้ง บางครั้งคุณคาดการณ์ได้ บางครั้ง 망령ของหน้าจอสีน้ำเงินลุกโชนอย่างไม่คาดคิด ไม่ว่าจะเป็นอย่างไร มันน่าหงุดหงิด โดยเฉพาะหากคุณไม่สามารถวินิจฉัยปัญหาได้อย่างรวดเร็ว

โชคดีที่หน้าจอสีน้ำเงินจะให้รหัสข้อผิดพลาดเสมอ แต่คุณจะรู้ความหมายอย่างไร? คุณใช้โปรแกรมที่ใช้ได้อย่าง Windows Debugger (WinDbg) หรือ NirSoft BlueScreenView นี่คือคู่มือที่ใช้งานได้ของคุณสำหรับการแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงิน!

ข้อผิดพลาดหน้าจอสีน้ำเงินคืออะไร?

เมื่อ Windows มีข้อผิดพลาดร้ายแรง ระบบจะล้มเหลว การล้มเหลวนี้มักนำเสนอหน้าจอสีน้ำเงิน หน้าจอสีน้ำเงิน (ที่เรียกกันด้วยความรักว่า Blue Screen of Death หรือ BSoD) แสดงข้อมูลจำนวนมากที่รายละเอียดเกี่ยวกับการล้มเหลว ภายในข้อมูลมีเหตุผล สถานที่ และวิธีที่การล้มเหลวเกิดขึ้น

สาเหตุของข้อผิดพลาดหน้าจอสีน้ำเงินคืออะไร?

ข้อผิดพลาดหน้าจอสีน้ำเงินสามารถมีสาเหตุหลายอย่าง รวมถึง:

  • ฮาร์ดแวร์ที่ผิดปกติ
  • ซอฟต์แวร์ที่ผิดปกติ
  • ไดรเวอร์ล้าสมัยหรือเขียนโค้ดแย่
  • ร้อนเกินไป
  • การออเวอร์คล็อก

นั่นคือเพียงห้าสาเหตุที่เป็นไปได้ ภายในเหล่านั้น มีข้อผิดพลาดเฉพาะมากมาย นั่นคือที่มาของรหัสข้อผิดพลาดหน้าจอสีน้ำเงิน

รหัสข้อผิดพลาดหน้าจอสีน้ำเงินให้คุณข้อผิดพลาดเฉพาะที่จะตรวจสอบ คุณสามารถเน้นความพยายามแทนที่จะเดาสิ่งที่ผิดพลาดและทำไม ตัวอย่างเช่น รหัส 0x80240034 WU_E_DOWNLOAD_FAILED หมายความว่า Windows Update ของคุณล้มเหลวในการดาวน์โหลด ทุกทีนั้น ไม่น่าจะเป็นสาเหตุของ BSoD แต่คุณเห็นว่ารหัสมีข้อความข้อผิดพลาดเฉพาะ

คุณแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินอย่างไร?

การแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินขึ้นอยู่กับประเภทของข้อผิดพลาด บางครั้ง การค้นหาอินเทอร์เน็ตแบบลึกซึ้งเพียงพอที่จะเปิดเผยว่ามีอะไรผิดปกติกับระบบของคุณ บางครั้ง ซอฟต์แวร์พิเศษสำหรับการดีบั๊กระบบคือสิ่งที่คุณต้องการ นี่คือวิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินของคุณโดยใช้ WinDbg หรือ NirSoft BlueScreenView

วิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินด้วย WinDbg

WinDbg เป็นเครื่องมือที่ทรงพลังที่คุณสามารถใช้เพื่อค้นหาสาเหตุรากฐานของข้อผิดพลาดหน้าจอสีน้ำเงินของคุณ

การติดตั้ง Windows 10 SDK

วิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินด้วย WinDbg และ BlueScreenView

ไปที่หน้าดาวน์โหลด Windows 10 SDK Windows 10 SDK มีเครื่องมือจำนวนมาก รวมถึง Windows Performance Toolkit, Debugging Tool for Windows, .NET Framework Software Development Kit และเครื่องมือพัฒนาอื่นๆ ปฏิบัติตามขั้นตอนเหล่านี้ตอนนี้

  1. กดปุ่ม Download the Installer เมื่อดาวน์โหลดเสร็จ ให้รันตัวติดตั้ง
  2. เมื่อเปิดตัวติดตั้ง Windows 10 SDK ให้เลือกตัวเลือกแรกเพื่อ Install the Windows Software Development Kit ไปยังคอมพิวเตอร์ของคุณ เส้นทางการติดตั้งเริ่มต้นถือว่าโอเค
  3. เลือก Next เพื่อต่อไปและยอมรับใบอนุญาต ในหน้าถัดไป ให้ยกเลิกการเลือกทุกกล่อง ยกเว้น Debugging Tools for Windows
  4. จากนั้นกด Install

การเปิดและตั้งค่า WinDbg

เปิดเมนู Start และไปที่ Windows Kits > WinDbg. ใช้ดีบักเกอร์สำหรับสถาปัตยกรรมระบบของคุณ ไม่ว่าจะเป็น 32 หรือ 64-bit ผมมีระบบ 64-bit ดังนั้นจะเลือก WinDbg X64

ตอนนี้ คุณต้องหา memory dump ของ BSoD Dump นี้มีข้อมูลเกี่ยวกับการล้มเหลว เช่น "สาเหตุ" และ "ตำแหน่ง"

มีสองประเภทหลักของ memory dump BSoD: full dump และ minidump โดยทั่วไป minidump มีขนาดเล็กกว่าแต่มีข้อมูลมากกว่า full dump (รู้ไว้ว่าเรื่องหลอกลวง)

  1. คุณจะพบ log minidump ในไดเรกทอรีรูท โดยทั่วไป C:\Windows\Minidump ในโฟลเดอร์ คุณจะพบ log minidump จริงๆ
  2. หรือ full dump จะอยู่ที่ C:\Windows\memory.dmp

สำหรับบทช่วยสอนนี้ เราจะวิเคราะห์ minidump (เพราะนั่นคือสิ่งที่ผมมีอยู่)

หมายเหตุ: ไม่มี dump เลย? ดูวิธีเปิดการ dump ของ Windows หลังการล้มเหลว

กลับไปที่ WinDbg ก่อนอื่น คุณต้องตั้งค่า symbol source Symbols เป็นตัวระบุสำหรับภาษาโปรแกรมมิ่งที่เชื่อมโยงกับข้อมูลเฉพาะ พวกเขาทำให้ง่ายต่อการวิเคราะห์ข้อมูลที่พบใน log (หรือโค้ด)

วิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินด้วย WinDbg และ BlueScreenView

ไปที่ File > Symbol File Path แล้วคัดลอกและวางสิ่งต่อไปนี้:

SRV*c:\websymbols*https://msdl.microsoft.com/download/symbols

จากนั้นกด OK

การวิเคราะห์ crash dump ใน WinDbg

ลากและวางไฟล์ dump ของคุณเข้าไปใน WinDbg หรือกด Ctrl + D เพื่อเปิดตัวเบราว์เซอร์ไฟล์ แล้วค้นหาไฟล์ dump ของคุณ เมื่อโหลดไฟล์ dump แล้ว คุณจะพบหน้าจอการวิเคราะห์เริ่มต้น จะมีลักษณะคล้ายกับนี้:

วิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินด้วย WinDbg และ BlueScreenView

มีสองสิ่งที่ต้องดูจากหน้าจอนี้: ฟิลด์ BugCheck และ Probably caused by นี่คือรายละเอียด:

วิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินด้วย WinDbg และ BlueScreenView
  • BugCheck 1A คือรหัสข้อผิดพลาด
  • Probably caused by: memory_corruption ( ONE_BIT ) ให้คุณความเข้าใจทันทีเกี่ยวกับปัญหาที่กำลังเผชิญ

ในกรณีนี้ คุณทราบว่าข้อผิดพลาดหน่วยความจำเป็นสาเหตุที่น่าจะเป็นของ BSoD ของคุณ

คุณสามารถนำการวิเคราะห์ไปอีกขั้นตอนด้วยคำสั่ง WinDbg ในกรณีนี้ คำสั่ง !analyze -v (ไฮไลท์สีฟ้าในรูปภาพด้านบน) จะแสดงข้อมูลโดยละเอียดที่เกี่ยวข้องกับ BSoD ของคุณ มีลิงก์คำสั่งภายใต้ส่วนหัว Bugcheck Analysis อย่างไรก็ตาม ลิงก์นี้บางครั้งหายไป หากไม่มีลิงก์ ให้ป้อนคำสั่งในช่องที่ด้านล่างของหน้าต่าง WinDbg

คำสั่งดำเนินการวิเคราะห์อัตโนมัติจำนวนมาก WinDbg แสดงผลภายใต้ส่วนหัว BugCheck Analysis ใหม่ ปริมาณข้อมูลที่ WinDbg โยนออกมารู้สึกค่อนข้าง overwhelming แต่ในกรณีนี้ คุณเพียงมองหาข้อมูลสำคัญบางอย่างเพื่อเติมเต็มการประเมิน BSoD ของคุณ

พารามิเตอร์โดยตรงภายใต้ส่วนหัว BugCheck Analysis ใหม่ให้ชุดข้อมูลที่มีประโยชน์อีกชุด ตัวอย่างเช่น ในตัวอย่างด้านล่าง คุณสามารถเห็นข้อผิดพลาดยืนยันเป็น Memory_Management (1a) นอกจากนี้ Arguments (arguments คือพารามิเตอร์ที่ให้ข้อมูล) ขยายข้อมูล

วิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินด้วย WinDbg และ BlueScreenView

Arg1 ระบุว่า "A corrupt PTE has been detected," อธิบายว่า "Parameter 2 contains the address of the PTE."

ตอนนี้ ผมรู้ว่า PTE ย่อมาจาก Page Table Entry ดังนั้นข้อผิดพลาดนี้อาจเกี่ยวข้องกับหน่วยความจำเสมือนของผม และผมสามารถเริ่มแก้ไข BSoD ได้ที่นั่น อย่างไรก็ตาม มีข้อผิดพลาดจำนวนมากที่ผมไม่รู้เรื่อง

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

วิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินด้วย BlueScreenView

เครื่องมือวิเคราะห์ WinDbg เป็นชุดอุปกรณ์ที่ทรงพลัง คุณสามารถใช้ได้สำหรับการวิเคราะห์ dump และไฟล์ทุกประเภท อย่างไรก็ตาม ผู้อ่านหลายคนจะไม่ต้องการชุดเครื่องมือวิเคราะห์เต็มรูปแบบที่ WinDbg เสนอ หาก聽起來เหมือนคุณ Nirsoft's BlueScreenView คือสิ่งที่คุณต้องการพอดี

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

นี่คือวิธีการทำงาน:

ไปที่หน้า BlueScreenView และดาวน์โหลดโปรแกรม เมื่อดาวน์โหลดเสร็จ ติดตั้ง BlueScreenView เปิดโปรแกรมหลังการติดตั้ง

นี่คือที่ที่ BlueScreenView มีประโยชน์ มันโหลด minidump ที่พบในโฟลเดอร์ MiniDump อัตโนมัติ คุณสามารถจัดเรียง dump ตาม Crash Time เพื่อหา BSoD ล่าสุด ในรูปภาพด้านล่าง คุณเห็นเวอร์ชัน BlueScreenView ของไฟล์ dump ที่วิเคราะห์ในส่วน WinDbg

วิธีแก้ไขข้อผิดพลาดหน้าจอสีน้ำเงินด้วย WinDbg และ BlueScreenView

ความแตกต่างหลักคือเลย์เอาต์และความสะดวกในการหาข้อมูล BSoD Bug Check String, Bug Check Code และ Parameters เหมือนกัน BlueScreenView ยังระบุไดรเวอร์ ntoskrnl.exe เป็นรากฐานของ BSoD

เช่นเดียวกับ WinDbg คุณสามารถทำการค้นหาอินเทอร์เน็ตเสร็จสิ้นด้วยข้อมูล BSoD ของคุณ

WinDbg เทียบ BlueScreenView

เครื่องมือวิเคราะห์หน้าจอสีน้ำเงินตัวไหนดีกว่ากัน? ขึ้นอยู่กับสิ่งที่คุณต้องการบรรลุ

BlueScreenView ใช้งานง่ายกว่า WinDbg อย่างแน่นอน หากคุณต้องการข้อมูล 빠르고 กะทัดรัดเกี่ยวกับ BSoD ของคุณ BlueScreenView คือเครื่องมือที่ดีกว่า ส่วนใหญ่ของคนจะทำงานได้ดีกับ BlueScreenView โดยเฉพาะที่มันไม่ต้องการการตั้งค่า และให้ข้อมูลที่ต้องการทันที และในรูปแบบที่ย่อยได้ง่าย

สำหรับความช่วยเหลือเพิ่มเติม ดูเคล็ดลับทั่วไปของเราสำหรับการแก้ไขหน้าจอสีน้ำเงินใน Windows