เครื่องมือแก้ไขข้อบกพร่องสำหรับการใช้งาน windows การติดตั้งและกำหนดค่า WinDBG สำหรับการวิเคราะห์การถ่ายโอนข้อมูลหน่วยความจำ ประเภทของ Windows Crash Dumps

การขัดข้องประเภทนี้มักเกี่ยวข้องกับไดรเวอร์ที่ผิดพลาด ซึ่งอาจระบุได้ยาก อย่างไรก็ตาม ระบบติดตามข้อผิดพลาดที่ได้รับการปรับปรุงใน Windows Vista (และไม่ใช่แค่ Vista เท่านั้น!) มักจะนำคุณไปสู่ไฟล์ที่มีปัญหา เป็นผลให้คนส่วนใหญ่เลิกพยายามทำงานบนคอมพิวเตอร์ที่ไม่เสถียรอย่างเมามัน บันทึกเอกสารด้วยความหวาดระแวงสม่ำเสมอและหวังว่าจะได้สิ่งที่ดีที่สุด

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

ดาวน์โหลดเครื่องมือแก้ไขข้อบกพร่องด้วยตัวคุณเอง

คุณสามารถดาวน์โหลด Windows Debugging Tools ได้โดยตรงจากเว็บไซต์ Microsoft โปรแกรมนี้ทำงานได้กับระบบปฏิบัติการหลากหลายตั้งแต่ Windows NT 4 ไปจนถึง Windows 2008 ดังนั้นคุณจึงไม่น่าจะมีปัญหากับมัน ใช่ เราไม่สามารถพูดได้ว่ามันเสถียรภายใต้ Windows 7 RC แต่จากการทดสอบของเรา มันยังคงใช้งานได้ ดังนั้นแม้แต่ความพยายามที่จะวินิจฉัยปัญหาใน Windows 7 RC ก็อาจประสบความสำเร็จได้

กำหนดค่าระบบของคุณ

จำเป็นที่คอมพิวเตอร์ของคุณจะสร้างการถ่ายโอนข้อมูลหน่วยความจำในระหว่างที่ล้มเหลว ซึ่งต่อมาจะทำหน้าที่เป็นแหล่งข้อมูลสำหรับดีบักเกอร์ ดังนั้นจึงเป็นสิ่งสำคัญที่ Windows ได้รับการกำหนดค่าให้สร้างดัมพ์ หากต้องการกำหนดค่าระบบปฏิบัติการของคุณ ให้คลิกขวาที่คอมพิวเตอร์ของคุณแล้วเลือกคุณสมบัติ จากนั้นคลิกที่แท็บการตั้งค่าระบบขั้นสูง ค้นหาส่วนย่อยการตั้งค่าการเริ่มต้นและการกู้คืน และตรวจสอบให้แน่ใจว่าตัวเลือกเขียนข้อมูลการดีบักถูกตั้งค่าเป็น Kernel memory dump ) หรือ Complete memory dump

จากนั้นคลิก Start ไปที่ All Programs เลือก Debugging Tools แล้วเปิด WinDbg ในโปรแกรมไปที่เมนู File และเลือก Symbol File Path... จากนั้นเขียนบรรทัดต่อไปนี้ในหน้าต่างที่เปิดขึ้น:

SRV*c:\สัญลักษณ์*http://msdl.microsoft.com/download/สัญลักษณ์

ส่วนหลังกำหนดเส้นทางไปยังข้อมูลพิเศษ - ที่เรียกว่า "สัญลักษณ์" ซึ่งสามารถช่วยเครื่องมือแก้ไขข้อบกพร่องระบุไฟล์ที่ผิดพลาดของคุณได้

หลังจากเข้าสู่บรรทัดให้คลิกที่ปุ่มตกลง ในภายหลัง เมื่อทำงานกับดีบักเกอร์ บรรทัดนี้จะทำให้สัญลักษณ์ถูกดาวน์โหลดจาก msdl.microsoft.com และบันทึกลงในโฟลเดอร์ c:\สัญลักษณ์

แก้ไขปัญหาของคุณ

ตอนนี้รอความล้มเหลวของหน้าจอสีน้ำเงินครั้งถัดไปและการรีบูตคอมพิวเตอร์ให้เสร็จสิ้นในภายหลัง จากนั้นเรียกใช้ WinDbg อีกครั้ง (ผู้ใช้ Vista จำเป็นต้องเรียกใช้โปรแกรมในฐานะผู้ดูแลระบบ) คลิกที่เมนู File เลือก Open Crash Dump เปิดไฟล์ \Windows\MEMORY.DMP จากนั้นโปรแกรมจะเริ่มวิเคราะห์ทันที

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

อย่างไรก็ตาม โดยปกติแล้วจะได้รับผลลัพธ์ภายในไม่กี่นาที สิ่งนี้เห็นได้จากบรรทัดตัววิเคราะห์ข้อผิดพลาด Bugcheck Analysis ซึ่งรายงานบางอย่างเช่น “อาจเกิดจาก: UACReplace.sys” เมื่อแปลเป็นภาษารัสเซีย หมายความว่าปัญหาอาจเกิดจากไฟล์ UACReplace.sys ป้อนลงในแถบค้นหาเช่น Google แล้วคุณจะพบต้นกำเนิดที่แท้จริง โดยเฉพาะอย่างยิ่งหากเป็นของโปรแกรมใดโปรแกรมหนึ่งที่คุณติดตั้งหรือไดรเวอร์ที่คุณติดตั้งคุณสามารถลองอัปเดตได้ บางทีนี่อาจช่วยแก้ปัญหาที่คุณประสบได้

ต้องบอกว่าในบางครั้ง WinDbg ไม่สามารถตั้งชื่อไฟล์ได้เลยหรือเพียงแค่เลือก Windows DLLs ตัวใดตัวหนึ่ง หากสิ่งนี้เกิดขึ้นกับคุณ เพียงคลิกที่หน้าต่างคำสั่งเหนือแถบสถานะแล้วพิมพ์คำสั่ง:

หลังจากนั้นกด Enter นี่จะให้รายงานที่มีรายละเอียดมากขึ้นแก่คุณ ซึ่งอาจมีข้อมูลเกี่ยวกับสาเหตุที่เป็นไปได้ของปัญหาของคุณ

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

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

ความสนใจ!การถ่ายโอนข้อมูลความผิดพลาดจะไม่ถูกสร้างขึ้นหากระบบย่อยของดิสก์ล้มเหลวหรือมีข้อผิดพลาดร้ายแรงเกิดขึ้นในระหว่างระยะเริ่มต้นของการบูต Windows

ประเภทของ Windows Crash Dumps

โดยใช้ระบบปฏิบัติการปัจจุบัน Windows 10 (Windows Server 2016) เป็นตัวอย่างมาดูประเภทการถ่ายโอนข้อมูลหน่วยความจำหลักที่ระบบสามารถสร้างได้:

  • การถ่ายโอนข้อมูลหน่วยความจำขนาดเล็ก(256 กิโลไบต์) ไฟล์ประเภทนี้ประกอบด้วยข้อมูลจำนวนน้อยที่สุด ประกอบด้วยข้อความแสดงข้อผิดพลาด BSOD ข้อมูลเกี่ยวกับไดรเวอร์ กระบวนการที่ใช้งานอยู่ ณ เวลาที่เกิดการขัดข้อง และกระบวนการหรือเธรดเคอร์เนลใดที่ทำให้เกิดข้อขัดข้อง
  • ดัมพ์หน่วยความจำเคอร์เนล- โดยทั่วไปแล้วจะมีขนาดเล็ก — หนึ่งในสามของขนาดหน่วยความจำกายภาพ ดัมพ์หน่วยความจำเคอร์เนลมีรายละเอียดมากกว่าดัมพ์ขนาดเล็ก ประกอบด้วยข้อมูลเกี่ยวกับไดรเวอร์และโปรแกรมโหมดเคอร์เนล รวมถึงหน่วยความจำที่จัดสรรให้กับเคอร์เนล Windows และ Hardware Abstraction Layer (HAL) และหน่วยความจำที่จัดสรรให้กับไดรเวอร์และโปรแกรมโหมดเคอร์เนลอื่นๆ
  • ถ่ายโอนข้อมูลหน่วยความจำให้เสร็จสมบูรณ์- มีขนาดใหญ่ที่สุดและต้องใช้หน่วยความจำเท่ากับ RAM ของระบบของคุณ บวกกับ 1MB ที่ Windows ต้องการในการสร้างไฟล์นี้
  • ดัมพ์หน่วยความจำอัตโนมัติ- สอดคล้องกับการถ่ายโอนข้อมูลหน่วยความจำเคอร์เนลในแง่ของข้อมูล ข้อแตกต่างเพียงอย่างเดียวคือใช้พื้นที่เท่าใดในการสร้างไฟล์ดัมพ์ ไฟล์ประเภทนี้ไม่มีอยู่ใน Windows 7 แต่ถูกเพิ่มเข้ามาใน Windows 8
  • ดัมพ์หน่วยความจำที่ใช้งานอยู่- ประเภทนี้กำจัดองค์ประกอบที่ไม่สามารถระบุสาเหตุของความล้มเหลวของระบบได้ สิ่งนี้ถูกเพิ่มลงใน Windows 10 และมีประโยชน์อย่างยิ่งหากคุณใช้เครื่องเสมือนหรือหากระบบของคุณเป็นโฮสต์ Hyper-V

จะเปิดใช้งานการดัมพ์หน่วยความจำใน Windows ได้อย่างไร?

ใช้ Win+Pause เปิดหน้าต่างการตั้งค่าระบบ เลือก " การตั้งค่าระบบขั้นสูง"(การตั้งค่าระบบขั้นสูง). ใน " นอกจากนี้" (ขั้นสูง) ส่วน "" (การเริ่มต้นและการกู้คืน) คลิกปุ่ม " ตัวเลือก"(การตั้งค่า). ในหน้าต่างที่เปิดขึ้น ให้กำหนดค่าการดำเนินการที่จะดำเนินการเมื่อระบบล้มเหลว ตรวจสอบ " บันทึกเหตุการณ์ลงในบันทึกของระบบ" (เขียนเหตุการณ์ลงในบันทึกของระบบ) เลือกประเภทของดัมพ์ที่ควรสร้างเมื่อระบบขัดข้อง หากในช่องทำเครื่องหมาย " แทนที่ไฟล์ดัมพ์ที่มีอยู่"ทำเครื่องหมายในช่อง (เขียนทับไฟล์ที่มีอยู่) ไฟล์จะถูกเขียนทับทุกครั้งที่เกิดข้อผิดพลาด เป็นการดีกว่าที่จะยกเลิกการเลือกช่องนี้ จากนั้นคุณจะมีข้อมูลเพิ่มเติมสำหรับการวิเคราะห์ ปิดใช้งานการรีสตาร์ทอัตโนมัติด้วย

ในกรณีส่วนใหญ่ การถ่ายโอนข้อมูลหน่วยความจำขนาดเล็กจะเพียงพอที่จะวิเคราะห์สาเหตุของ BSOD

ขณะนี้ เมื่อเกิด BSOD คุณสามารถวิเคราะห์ไฟล์ดัมพ์และค้นหาสาเหตุของความล้มเหลวได้ ดัมพ์ขนาดเล็กจะถูกบันทึกในโฟลเดอร์ %systemroot%\minidump ตามค่าเริ่มต้น หากต้องการวิเคราะห์ไฟล์ดัมพ์ขอแนะนำให้ใช้โปรแกรม WinDBG(ดีบักเกอร์เคอร์เนลของ Microsoft).

การติดตั้ง WinDBG บน Windows

คุณประโยชน์ WinDBGรวมอยู่ใน " SDK ของ Windows 10"(Windows 10 SDK) -

ไฟล์นี้เรียกว่า winsdksetup.exe, ขนาด 1.3 MB.

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

คุณสามารถติดตั้งแพ็คเกจทั้งหมดได้ แต่หากต้องการติดตั้งเฉพาะเครื่องมือแก้ไขจุดบกพร่อง ให้เลือก เครื่องมือแก้ไขข้อบกพร่องสำหรับ Windows.

หลังการติดตั้ง คุณจะพบทางลัด WinDBG ได้ในเมนูเริ่ม

การตั้งค่าการเชื่อมโยงของไฟล์ .dmp กับ WinDBG

หากต้องการเปิดไฟล์ดัมพ์ด้วยการคลิกง่ายๆ ให้แมปส่วนขยาย .dmp กับยูทิลิตี้ WinDBG

  1. เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบ และรันคำสั่งสำหรับระบบ 64 บิต: cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    windbg.exe –IA
    สำหรับระบบ 32 บิต:
    C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
    windbg.exe –IA
  2. ด้วยเหตุนี้ ประเภทไฟล์: .DMP, .HDMP, .MDMP, .KDMP, .WEW จะถูกแมปกับ WinDBG

การตั้งค่าเซิร์ฟเวอร์สัญลักษณ์การดีบักใน WinDBG

สัญลักษณ์การดีบัก (สัญลักษณ์การดีบักหรือไฟล์สัญลักษณ์) คือกลุ่มข้อมูลที่สร้างขึ้นระหว่างการคอมไพล์โปรแกรมร่วมกับไฟล์ปฏิบัติการ บล็อกข้อมูลดังกล่าวประกอบด้วยข้อมูลเกี่ยวกับชื่อตัวแปร ที่เรียกว่าฟังก์ชัน ไลบรารี ฯลฯ ข้อมูลนี้ไม่จำเป็นเมื่อรันโปรแกรม แต่จะมีประโยชน์เมื่อทำการดีบั๊ก ส่วนประกอบของ Microsoft ได้รับการคอมไพล์ด้วยสัญลักษณ์ที่แจกจ่ายผ่าน Microsoft Symbol Server

กำหนดค่า WinDBG เพื่อใช้ Microsoft Symbol Server:

  • เปิด WinDBG;
  • ไปที่เมนู ไฟล์ –> เส้นทางไฟล์สัญลักษณ์
  • เขียนบรรทัดที่มี URL สำหรับดาวน์โหลดสัญลักษณ์การดีบักจากเว็บไซต์ Microsoft และโฟลเดอร์สำหรับบันทึกแคช: SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/สัญลักษณ์s ในตัวอย่าง แคชจะถูกดาวน์โหลด ไปยังโฟลเดอร์ E:\Sym_WinDBG คุณสามารถระบุรายการใดก็ได้
  • อย่าลืมบันทึกการเปลี่ยนแปลงเมนู ไฟล์–>บันทึกพื้นที่ทำงาน;

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

SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/สัญลักษณ์;c:\สัญลักษณ์

หากคุณไม่มีการเชื่อมต่ออินเทอร์เน็ต ให้ดาวน์โหลดแพ็คเกจสัญลักษณ์จากทรัพยากร Windows Symbol Package ก่อน

การวิเคราะห์ Crash Dump ใน WinDBG

ดีบักเกอร์ WinDBG จะเปิดไฟล์ดัมพ์และดาวน์โหลดสัญลักษณ์ที่จำเป็นสำหรับการดีบักจากโฟลเดอร์ในเครื่องหรือจากอินเทอร์เน็ต คุณไม่สามารถใช้ WinDBG ในระหว่างกระบวนการนี้ ที่ด้านล่างของหน้าต่าง (ในบรรทัดคำสั่งดีบักเกอร์) ข้อความจะปรากฏขึ้น ไม่ได้เชื่อมต่อดีบั๊ก

คำสั่งจะถูกป้อนลงในบรรทัดคำสั่งที่อยู่ด้านล่างของหน้าต่าง

สิ่งสำคัญที่สุดที่ต้องใส่ใจคือรหัสข้อผิดพลาดซึ่งจะระบุเป็นเลขฐานสิบหกและมีแบบฟอร์มเสมอ 0xXXXXXXXXX(ระบุไว้ในตัวเลือกใดตัวเลือกหนึ่ง - STOP: , 07/02/2019 0008F, 0x8F) ในตัวอย่างของเรา รหัสข้อผิดพลาดคือ 0x139

ดีบักเกอร์เสนอให้รันคำสั่ง!analyze -v เพียงเลื่อนเมาส์ไปเหนือลิงก์แล้วคลิก คำสั่งนี้มีไว้เพื่ออะไร?

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

ประเด็นหลักที่คุณควรคำนึงถึงเมื่อวิเคราะห์หลังจากดำเนินการคำสั่ง!วิเคราะห์ –v (รายการไม่สมบูรณ์)

1: kd> !วิเคราะห์ -v


* *
* การวิเคราะห์ข้อผิดพลาด *
* *
*****************************************************************************
ชื่อเชิงสัญลักษณ์ของข้อผิดพลาด STOP (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
คำอธิบายของข้อผิดพลาด (ส่วนประกอบเคอร์เนลทำให้โครงสร้างข้อมูลที่สำคัญเสียหาย ความเสียหายนี้อาจทำให้ผู้โจมตีเข้าควบคุมเครื่องนี้ได้):

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

ข้อโต้แย้ง:
Arg1: 0000000000000003, A LIST_ENTRY ได้รับความเสียหาย (เช่น ลบสองครั้ง)
Arg2: ffffd0003a20d5d0 ที่อยู่ของเฟรมกับดักสำหรับข้อยกเว้นที่ทำให้เกิดการตรวจสอบจุดบกพร่อง
Arg3: ffffd0003a20d528 ที่อยู่ของบันทึกข้อยกเว้นสำหรับข้อยกเว้นที่ทำให้เกิดการตรวจสอบจุดบกพร่อง
Arg4: 0000000000000000 สงวนไว้
รายละเอียดการดีบัก:
------------------

ตัวนับจะแสดงจำนวนครั้งที่ระบบขัดข้องด้วยข้อผิดพลาดที่คล้ายกัน:

ลูกค้า_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

รหัสข้อผิดพลาด STOP ในรูปแบบย่อ:

BUGCHECK_STR: 0x139

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

กระบวนการ_NAME: sqlservr.exe

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

ERROR_CODE: (NTSTATUS) 0xc0000409 - ระบบตรวจพบการโอเวอร์รันของบัฟเฟอร์แบบสแต็กในแอปพลิเคชันนี้ การบุกรุกมากเกินไปอาจทำให้ผู้ใช้ที่เป็นอันตรายสามารถควบคุมแอปพลิเคชันนี้ได้
ข้อยกเว้น_CODE: (NTSTATUS) 0xc0000409 - ระบบตรวจพบการโอเวอร์รันของบัฟเฟอร์แบบสแต็กในแอปพลิเคชันนี้ การบุกรุกมากเกินไปอาจทำให้ผู้ใช้ที่เป็นอันตรายสามารถควบคุมแอปพลิเคชันนี้ได้

การโทรครั้งสุดท้ายบนสแต็ก:

LAST_CONTROL_TRANSFER: จาก fffff8040117d6a9 ถึง fffff8040116b0a0

โทรสแต็กในเวลาที่ล้มเหลว:

สแต็ค_ข้อความ:
ffffd000`3a20d2a8 fffff804`0117d6a9: 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20d528: nt!KeBugCheckEx
ffffd000`3a20d2b0 fffff804`0117da50: ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2: nt!KiBugCheckDispatch+0x69
FFFD000`3A20D3F0 FFFFF804`0117C150: 0000000000 000000 000000 00000000 000000 00000000 000000`00000000: nt! Kifastfaildispatch+0xd0
ffffd000`3a20d5d0 fffff804`01199482: ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9: nt!KiRaiseSecurityCheckFailure+0x3d0
ffffd000`3a20d760 fffff804`014a455d: 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951: nt! - ::FNODOBFM::`สตริง"+0x17252
ffffd000`3a20d8c0 fffff804`013a34ac: 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34c600: nt!IopSynchronousServiceTail+0x379
ffffd000`3a20d990 fffff804`0117d313: ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380: nt!NtWriteFile+0x694
ffffd000`3a20da90 00007ffb`475307da: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: nt!KiSystemServiceCopyEnd+0x 13
000000ee`f25ed2b8 00000000`00000000: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: 0x00007ffb`4753 07da

ส่วนรหัสที่เกิดข้อผิดพลาด:

ติดตาม_IP:
nt!KiFastFailDispatch+d0
fffff804`0117da50 c644242000 mov ไบต์ ptr ,0
FAULT_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: เจ้าของเครื่องจักร

ชื่อของโมดูลในตารางอ็อบเจ็กต์เคอร์เนล หากเครื่องวิเคราะห์สามารถตรวจพบไดรเวอร์ที่มีปัญหาได้ ชื่อจะแสดงในช่อง MODULE_NAME และ IMAGE_NAME:

MODULE_NAME:ไม่ใช่
IMAGE_NAME: ntkrnlmp.exe

1: kd> lmvm nt
เรียกดูรายการโมดูลทั้งหมด
ไฟล์ภาพสัญลักษณ์ที่โหลด: ntkrnlmp.exe
ไฟล์อิมเมจหน่วยความจำที่แมป: C:\ProgramData\dbg\sym\ntoskrnl.exe\5A9A2147787000\ntoskrnl.exe
เส้นทางรูปภาพ: ntkrnlmp.exe
ชื่อรูปภาพ: ntkrnlmp.exe
ชื่อภายใน: ntkrnlmp.exe
ชื่อไฟล์ต้นฉบับ: ntkrnlmp.exe
เวอร์ชันผลิตภัณฑ์: 6.3.9600.18946
เวอร์ชันไฟล์: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

ในตัวอย่างที่ให้ไว้ การวิเคราะห์ชี้ไปที่ไฟล์เคอร์เนล ntkrnlmp.exe เมื่อการวิเคราะห์ดัมพ์หน่วยความจำชี้ไปที่ไดรเวอร์ระบบ (เช่น win32k.sys) หรือไฟล์เคอร์เนล (ดังตัวอย่างของเรา ntkrnlmp.exe) ไฟล์นั้นมักจะไม่ใช่สาเหตุของปัญหา บ่อยครั้งที่ปรากฎว่าปัญหาอยู่ที่ไดรเวอร์อุปกรณ์ การตั้งค่า BIOS หรือความล้มเหลวของฮาร์ดแวร์

หากคุณเห็นว่า BSOD เกิดจากไดรเวอร์ของบริษัทอื่น ชื่อของมันจะถูกระบุในค่า MODULE_NAME และ IMAGE_NAME

ตัวอย่างเช่น:

เส้นทางรูปภาพ: \SystemRoot\system32\drivers\cmudaxp.sys
ชื่ออิมเมจ: cmudaxp.sys

เปิดคุณสมบัติของไฟล์ไดรเวอร์และตรวจสอบเวอร์ชัน ในกรณีส่วนใหญ่ ปัญหาเกี่ยวกับไดรเวอร์จะแก้ไขได้โดยการอัพเดต

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

ขั้นตอนที่ 1 - การกำหนดค่าการถ่ายโอนข้อมูลหน่วยความจำขนาดเล็ก

ขั้นตอนที่ 2 – การติดตั้ง WinDBG

ในการวิเคราะห์ดัมพ์หน่วยความจำ คุณจะต้องติดตั้งดีบักเกอร์ WinDBG ซึ่งรวมอยู่ใน Windows SDK ในขณะที่เขียนบทความนี้ Windows SDK เวอร์ชันล่าสุดที่มีคือ:

  • Windows 10 SDK (ดาวน์โหลดตัวติดตั้งเครือข่าย)
  • Windows 8.1 SDK (ดาวน์โหลดตัวติดตั้งเครือข่าย)

ขั้นตอนที่ 3 - การแมปไฟล์ .dmp กับ WinDBG

เพื่อให้การอ่านและวิเคราะห์ดัมพ์หน่วยความจำง่ายขึ้น ให้แมปไฟล์ .dmp ไปยัง WinDBG ซึ่งจะช่วยให้คุณสามารถเปิดไฟล์ดัมพ์จาก Explorer ได้โดยตรงใน WinDBG โดยไม่ต้องเปิดใช้งานก่อน


ขั้นตอนที่ 4 — การตั้งค่าเซิร์ฟเวอร์สัญลักษณ์เพื่อรับไฟล์สัญลักษณ์การดีบัก


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

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

ขั้นตอนที่ 1 - การกำหนดค่าการถ่ายโอนข้อมูลหน่วยความจำขนาดเล็ก

ขั้นตอนที่ 2 – การติดตั้ง WinDBG

ในการวิเคราะห์ดัมพ์หน่วยความจำ คุณจะต้องติดตั้งดีบักเกอร์ WinDBG ซึ่งรวมอยู่ใน Windows SDK ในขณะที่เขียนบทความนี้ Windows SDK เวอร์ชันล่าสุดที่มีคือ:

  • Windows 10 SDK (ดาวน์โหลดตัวติดตั้งเครือข่าย)
  • Windows 8.1 SDK (ดาวน์โหลดตัวติดตั้งเครือข่าย)

ขั้นตอนที่ 3 - การแมปไฟล์ .dmp กับ WinDBG

เพื่อให้การอ่านและวิเคราะห์ดัมพ์หน่วยความจำง่ายขึ้น ให้แมปไฟล์ .dmp ไปยัง WinDBG ซึ่งจะช่วยให้คุณสามารถเปิดไฟล์ดัมพ์จาก Explorer ได้โดยตรงใน WinDBG โดยไม่ต้องเปิดใช้งานก่อน


ขั้นตอนที่ 4 — การตั้งค่าเซิร์ฟเวอร์สัญลักษณ์เพื่อรับไฟล์สัญลักษณ์การดีบัก


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

เครื่องมือแก้ไขข้อบกพร่องสำหรับ Windows- เครื่องมือสำหรับการดีบักโค้ดของระบบปฏิบัติการ Windows เป็นชุดโปรแกรมที่แจกจ่ายอย่างอิสระจาก Microsoft ซึ่งได้รับการออกแบบมาเพื่อการดีบักโหมดผู้ใช้และโค้ดโหมดเคอร์เนล: แอปพลิเคชัน ไดรเวอร์ บริการ โมดูลเคอร์เนล ชุดเครื่องมือประกอบด้วยคอนโซลและดีบักเกอร์โหมด GUI ยูทิลิตี้สำหรับการทำงานกับสัญลักษณ์ ไฟล์ กระบวนการ และยูทิลิตี้สำหรับการดีบักระยะไกล ชุดเครื่องมือประกอบด้วยโปรแกรมอรรถประโยชน์ที่สามารถใช้เพื่อค้นหาสาเหตุของความล้มเหลวในส่วนประกอบต่างๆ ของระบบ เครื่องมือแก้ไขข้อบกพร่องสำหรับ Windowsตั้งแต่จุดหนึ่งเป็นต้นไปจะไม่สามารถดาวน์โหลดในรูปแบบของการแจกจ่ายแบบสแตนด์อโลนและเป็นส่วนหนึ่งของ Windows SDK (ชุดพัฒนาซอฟต์แวร์ Windows) ในทางกลับกัน Windows SDK มีให้ใช้งานโดยเป็นส่วนหนึ่งของโปรแกรมสมัครสมาชิก MSDN หรือสามารถดาวน์โหลดได้ฟรีเป็นการแจกจ่ายแยกต่างหากจาก msdn.microsoft.com ตามที่นักพัฒนาระบุว่าเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows เวอร์ชันล่าสุดและล่าสุดมีอยู่ใน Windows SDK

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

ตอนนี้เรามาดูกันว่าเครื่องมือแก้ไขจุดบกพร่องสำหรับ Microsoft Windows ช่วยให้เราสามารถทำอะไรได้บ้าง:

  • ดีบักแอปพลิเคชัน บริการ ไดรเวอร์ และเคอร์เนลในเครื่อง
  • ดีบักแอปพลิเคชัน บริการ ไดรเวอร์ และเคอร์เนลระยะไกลผ่านเครือข่าย
  • แก้ไขข้อบกพร่องของแอปพลิเคชันที่ทำงานอยู่แบบเรียลไทม์
  • วิเคราะห์ไฟล์ดัมพ์หน่วยความจำของแอปพลิเคชัน เคอร์เนล และระบบโดยรวม
  • ทำงานร่วมกับระบบที่ใช้สถาปัตยกรรม x86/x64/Itanium
  • แก้ไขข้อบกพร่องโหมดผู้ใช้และโปรแกรมโหมดเคอร์เนล

เครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows เวอร์ชันต่อไปนี้พร้อมใช้งาน: 32 บิต x86, Intel Itanium, 64 บิต x64 เราต้องการสองอัน: x86 หรือ x64

มีหลายวิธีในการติดตั้งเครื่องมือแก้ไขข้อบกพร่องสำหรับ Windows ในบทความนี้เราจะพิจารณาเฉพาะวิธีหลักเท่านั้น:

  • การติดตั้งผ่านตัวติดตั้งเว็บ
  • การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows จากอิมเมจ ISO ของ Windows SDK
  • การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows โดยตรงจากแพ็คเกจ dbg_amd64.msi / dbg_x86.msi

ยังไม่ชัดเจนว่าเหตุใดฉันจึงควรติดตั้งเครื่องมือแก้ไขจุดบกพร่องบนคอมพิวเตอร์ของฉัน บ่อยครั้งที่คุณต้องเผชิญกับสถานการณ์ที่การรบกวนในสภาพแวดล้อมการทำงานเป็นสิ่งที่ไม่พึงปรารถนาอย่างยิ่ง! และยิ่งกว่านั้น การติดตั้งผลิตภัณฑ์ใหม่ ซึ่งก็คือ การเปลี่ยนแปลงไฟล์รีจิสตรี/ระบบ อาจไม่เป็นที่ยอมรับโดยสิ้นเชิง ตัวอย่างได้แก่เซิร์ฟเวอร์ที่มีภารกิจสำคัญ เหตุใดนักพัฒนาจึงไม่พิจารณาตัวเลือกของแอปพลิเคชันเวอร์ชันพกพาที่ไม่จำเป็นต้องติดตั้ง
จากเวอร์ชันหนึ่งไปอีกเวอร์ชัน กระบวนการติดตั้งของแพ็คเกจเครื่องมือดีบักสำหรับ Windows ประสบกับการเปลี่ยนแปลงบางอย่าง ตอนนี้เรามาดูขั้นตอนการติดตั้งโดยตรงและดูวิธีการติดตั้งชุดเครื่องมือ

การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows โดยใช้ตัวติดตั้งเว็บ

ไปที่หน้า Windows SDK Archive และค้นหาส่วนที่เรียกว่า Windows 10 และด้านล่างรายการ “Windows 10 SDK (10586) และโปรแกรมจำลองอุปกรณ์ที่มี Windows 10 Mobile (Microsoft) (เวอร์ชัน 10586.11)”

คลิกที่รายการ ติดตั้ง SDK- หลังจากคลิก ให้ดาวน์โหลดและเรียกใช้ไฟล์ sdksetup.exe ซึ่งจะเริ่มกระบวนการติดตั้ง Windows SDK แบบออนไลน์ ในระยะเริ่มต้น ตัวติดตั้งจะตรวจสอบว่ามีการติดตั้งแพ็คเกจ .NET Framework เวอร์ชันล่าสุดบนระบบหรือไม่ (ปัจจุบันคือ 4.5) หากแพ็คเกจหายไป จะมีการเสนอการติดตั้งและสถานีจะรีบูตเมื่อเสร็จสิ้น ทันทีหลังจากการรีบูต ในขั้นตอนการอนุญาตผู้ใช้ กระบวนการติดตั้ง Windows SDK จะเริ่มต้นขึ้นเอง

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

หลังจากติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows เรียบร้อยแล้ว ตำแหน่งของไฟล์แก้ไขจุดบกพร่องสำหรับวิธีการติดตั้งนี้จะเป็นดังนี้:

  • เวอร์ชัน 64 บิต: C:\Program Files (x86)\Windows Kits\x.x\Debuggers\x64
  • เวอร์ชัน 32 บิต: C:\Program Files (x86)\Windows Kits\x.x\Debuggers\x86

* โดยที่ x.x เป็นเวอร์ชันเฉพาะของชุดพัฒนา
คุณสังเกตไหมว่าเวอร์ชัน 8 ขึ้นไปเส้นทางการติดตั้งแตกต่างอย่างเห็นได้ชัดจากเครื่องมือแก้ไขข้อบกพร่องแบบคลาสสิกสำหรับเวอร์ชันก่อนหน้าทั้งหมด

ข้อได้เปรียบอย่างมากของวิธีการติดตั้ง Debigging Tools สำหรับ Windows นี้คือการติดตั้งเวอร์ชันของเครื่องมือแก้ไขจุดบกพร่องสำหรับสถาปัตยกรรมทั้งหมดในคราวเดียว

การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows จาก Windows SDK ISO

วิธีการนี้เกี่ยวข้องกับการติดตั้ง Debugging Tools สำหรับ Windows โดยใช้อิมเมจการติดตั้ง Windows SDK (Software Developers Kit) แบบเต็ม คุณสามารถดาวน์โหลดอิมเมจ ISO สำหรับระบบที่เกี่ยวข้องได้ในหน้า Windows SDK Archive อย่างไรก็ตาม ในขณะนี้ คุณสามารถรับอิมเมจ ISO ของ SDK ได้โดยการเรียกใช้โปรแกรมติดตั้งเว็บ sdksetup.exe แล้วเลือก ดาวน์โหลดชุดพัฒนาซอฟต์แวร์ Windowsในหน้าต่างเริ่มตัวติดตั้ง:

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

ดังนั้นบนหน้าคุณต้องเลือกการแจกจ่ายที่ต้องการสำหรับฉัน (และฉันคิดว่าสำหรับหลาย ๆ คน) ในขณะนี้คือ "Windows SDK สำหรับ Windows 7 และ .NET Framework 4" และคลิกที่ลิงค์ด้านล่าง "รับ ISO ภาพดีวีดี”

เมื่อทำงานกับไซต์ msdn.microsoft.com ฉันแนะนำให้คุณใช้เบราว์เซอร์ Internet Explorer เนื่องจากมีการสังเกตกรณีที่ไม่สามารถใช้งานได้ของผลิตภัณฑ์คู่แข่ง!

ดังนั้นจึงจำเป็นต้องเลือกตามความจำเป็นเท่านั้น โดยทั่วไปแล้ว bitness ของ Debugging Tools สำหรับ Windows จะตรงกับ bitness ของระบบ ระบบของฉันส่วนใหญ่เป็น 64 บิต ดังนั้นในกรณีส่วนใหญ่ ฉันจะดาวน์โหลดอิมเมจสำหรับระบบ 64 บิต GRMSDKX_EN_DVD.iso
หลังจากดาวน์โหลดอิมเมจแล้ว เราจำเป็นต้องทำงานกับอิมเมจ ISO ที่มีอยู่ แน่นอนว่าวิธีการดั้งเดิมคือการเขียนซีดี แต่วิธีนี้ค่อนข้างยาวและบางครั้งก็มีราคาแพง ฉันแนะนำให้ใช้ยูทิลิตี้ฟรีเพื่อสร้างอุปกรณ์ดิสก์เสมือนในระบบ โดยส่วนตัวแล้ว ฉันชอบใช้ DEAMON Tools Lite เพื่อจุดประสงค์นี้มากกว่า บางคนอาจมีการตั้งค่าอื่น ๆ ยูทิลิตี้ตรงหรือเบากว่านั้นขึ้นอยู่กับรสนิยมและสีอย่างที่พวกเขาพูด .. หลังจากติดตั้ง DAEMON Tools Lite ฉันเพียงดับเบิลคลิกที่ไฟล์รูปภาพ GRMSDKX_EN_DVD.iso และไฟล์เสมือนใหม่จะปรากฏในระบบ ซีดี:

จากนั้น โดยการดับเบิลคลิก ฉันจะเปิดใช้งานการโหลดอัตโนมัติและเริ่มการติดตั้ง Windows SDK:

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


ทุกอย่างเป็นเช่นนั้น ในภาพหน้าจอมีสองตัวเลือกที่ทำเครื่องหมายไว้: “Windows Performance Toolkit” และ “Debugging Tools for Windows” เลือกทั้งสองอย่าง เพราะ Windows Performance Toolkit จะมีประโยชน์ในการทำงานของคุณอย่างแน่นอน! จากนั้นหลังจากคลิกปุ่ม "ถัดไป" การติดตั้งจะดำเนินต่อไปตามปกติ และในตอนท้ายคุณจะเห็นข้อความว่า "การติดตั้งเสร็จสมบูรณ์"
เมื่อการติดตั้งเสร็จสิ้น ไดเร็กทอรีการทำงานของแพ็คเกจ Debugging Tools สำหรับ Windows จะเป็นดังนี้:

  • สำหรับเวอร์ชัน x86:
  • สำหรับเวอร์ชัน x64:

ณ จุดนี้ การติดตั้งเครื่องมือตรวจแก้จุดบกพร่องสำหรับ Windows ถือว่าเสร็จสมบูรณ์

การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows ผ่านไฟล์ .msi

หากเกิดปัญหาเมื่อติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows โดยใช้สองวิธีก่อนหน้านี้ เรายังมีอีกวิธีหนึ่งในสต็อกซึ่งเชื่อถือได้มากที่สุดและผ่านการทดสอบตามเวลาซึ่งได้รับการช่วยเหลือมากกว่าหนึ่งครั้ง กาลครั้งหนึ่งก่อนที่จะรวมเข้ากับ Windows SDK เครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows นั้นมีให้ใช้งานในรูปแบบ installer.msi แยกต่างหาก ซึ่งยังสามารถพบได้อยู่ แต่อยู่ในส่วนลึกของการกระจาย Windows SDK แล้ว เนื่องจากเรามีอิมเมจ ISO ของ Windows SDK อยู่ในมือแล้ว เราจึงไม่สามารถเมานต์มันในระบบได้ แต่เพียงแค่เปิดมันโดยใช้โปรแกรมเก็บถาวร WinRAR ที่รู้จักกันดีอยู่แล้วหรือผลิตภัณฑ์อื่น ๆ ที่ทำงานร่วมกับเนื้อหาของดิสก์ ISO

หลังจากเปิดภาพแล้ว เราต้องไปที่ไดเร็กทอรี "ตั้งค่า" ที่อยู่ในรูท จากนั้นเลือกไดเร็กทอรีใดไดเร็กทอรี:

  • หากต้องการติดตั้งเวอร์ชัน 64 บิต: \Setup\WinSDKDebuggingTools_amd64และแตกไฟล์ dbg_amd64.msi ออกจากไดเร็กทอรีนี้
  • หากต้องการติดตั้งเวอร์ชัน 32 บิต: \Setup\WinSDKDebuggingTools และแตกไฟล์ dbg_x86.msi จากไดเร็กทอรีนี้

เมื่อการติดตั้งเสร็จสิ้น ไดเร็กทอรีการทำงานของแพ็คเกจ Debugging Tools สำหรับ Windows จะเป็นดังนี้:

  • สำหรับเวอร์ชัน x86: C:\Program Files (x86)\เครื่องมือดีบั๊กสำหรับ Windows (x86)
  • สำหรับเวอร์ชัน x64: C:\Program Files\Debugging เครื่องมือสำหรับ Windows (x64)

ณ จุดนี้ การติดตั้งเครื่องมือตรวจแก้จุดบกพร่องสำหรับ Windows ถือว่าเสร็จสมบูรณ์

ข้อมูลเพิ่มเติม

ฉันไม่รู้ว่าสิ่งนี้เชื่อมโยงกับอะไร อาจเนื่องมาจากความประมาทของฉัน แต่หลังจากติดตั้ง Debugging Tools สำหรับ Windows แล้ว ตัวติดตั้งไม่ได้กำหนดเส้นทางไปยังไดเร็กทอรีด้วยดีบักเกอร์ในเส้นทางตัวแปรเส้นทางของระบบ สิ่งนี้กำหนดข้อจำกัดบางประการในการเริ่มงานการดีบักต่างๆ โดยตรงจากคอนโซล ดังนั้นหากไม่มีเส้นทางฉันจะเขียนลงในหน้าต่างอย่างอิสระ ตัวแปรสภาพแวดล้อมเส้นทางสู่เครื่องมือแก้ไขข้อบกพร่อง:

  • C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
  • C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

* ในกรณีของคุณ เส้นทางอาจแตกต่างกันเนื่องจากการใช้ระบบปฏิบัติการที่มีขนาดบิตต่างกัน และเนื่องจากการใช้เวอร์ชัน SDK ที่แตกต่างกัน

ยูทิลิตี้ของแพ็คเกจ Debugging Tools สำหรับ Windows สามารถทำงานเป็นแอปพลิเคชั่นพกพาได้ คุณเพียงแค่ต้องคัดลอกไดเร็กทอรีจากระบบการทำงาน ชุดเครื่องมือประสิทธิภาพของ Microsoft Windowsและใช้เป็นเวอร์ชันพกพาบนเซิร์ฟเวอร์ที่ใช้งานจริง แต่อย่าลืมคำนึงถึงความจุของระบบด้วย!! แม้ว่าคุณจะติดตั้งแพ็คเกจบนระบบที่สำคัญเสร็จสมบูรณ์แล้ว คุณก็สามารถเริ่มทำงานได้ทันทีหลังการติดตั้ง โดยไม่จำเป็นต้องรีบูต

องค์ประกอบของเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows

และสุดท้าย นี่คือองค์ประกอบของ Debugging Tools สำหรับ Windows:

ไฟล์ วัตถุประสงค์
adplus.doc เอกสารประกอบสำหรับยูทิลิตี้ ADPlus
adplus.exe แอปพลิเคชันคอนโซลที่ทำงานของดีบักเกอร์ cdb โดยอัตโนมัติเพื่อสร้างดัมพ์และไฟล์บันทึกสำหรับกระบวนการตั้งแต่หนึ่งกระบวนการขึ้นไป
agestore.exe ยูทิลิตี้สำหรับการลบไฟล์ที่ล้าสมัยออกจากที่เก็บข้อมูลที่ใช้โดยเซิร์ฟเวอร์สัญลักษณ์หรือเซิร์ฟเวอร์ต้นทาง
เบรกอิน.exe ยูทิลิตี้ที่ช่วยให้คุณสามารถส่งชุดตัวแบ่งแบบกำหนดเองไปยังกระบวนการได้ คล้ายกับการกด CTRL+C
cdb.exe ดีบักเกอร์คอนโซลโหมดผู้ใช้
แปลงสโตร์.exe ยูทิลิตี้สำหรับการแปลงสัญลักษณ์จาก 2 ระดับเป็น 3 ระดับ
dbengprx.exe Repeater (พร็อกซีเซิร์ฟเวอร์) สำหรับการดีบักระยะไกล
dbgrpc.exe ยูทิลิตี้สำหรับแสดงข้อมูลสถานะการโทร RPC
dbgsrv.exe กระบวนการเซิร์ฟเวอร์ที่ใช้สำหรับการดีบักระยะไกล
dbh.exe ยูทิลิตี้สำหรับแสดงข้อมูลเกี่ยวกับเนื้อหาของไฟล์สัญลักษณ์
dumpchk.exe ยูทิลิตี้ตรวจสอบการถ่ายโอนข้อมูล ยูทิลิตี้สำหรับการตรวจสอบไฟล์ดัมพ์อย่างรวดเร็ว
dumpexam.exe ยูทิลิตี้สำหรับการวิเคราะห์ดัมพ์หน่วยความจำ ผลลัพธ์จะถูกส่งออกไปที่ %SystemRoot%\MEMORY.TXT
gflags.exe ผู้แก้ไขแฟล็กระบบส่วนกลาง ยูทิลิตี้นี้จะจัดการคีย์รีจิสทรีและการตั้งค่าอื่นๆ
i386kd.exe กระดาษห่อสำหรับ kd นั่นคือสิ่งที่ kd เคยถูกเรียกสำหรับระบบที่ใช้ Windows NT/2000 สำหรับเครื่อง x86 ใช่หรือไม่ อาจเป็นเพราะเหตุผลด้านความเข้ากันได้
ia64kd.exe กระดาษห่อสำหรับ kd ครั้งหนึ่งเคยเรียกว่า kd สำหรับระบบที่ใช้ Windows NT/2000 สำหรับเครื่อง ia64 หรือไม่ อาจเป็นเพราะเหตุผลด้านความเข้ากันได้
kd.exe ดีบักเกอร์คอนโซลโหมดเคอร์เนล
kdbgctrl.exe เครื่องมือจัดการการดีบักเคอร์เนล ยูทิลิตี้สำหรับจัดการและกำหนดค่าการเชื่อมต่อการดีบักเคอร์เนล
kdsrv.exe เซิร์ฟเวอร์การเชื่อมต่อสำหรับ KD ยูทิลิตี้นี้เป็นแอปพลิเคชั่นขนาดเล็กที่ทำงานและรอการเชื่อมต่อระยะไกล kd ทำงานบนไคลเอนต์และเชื่อมต่อกับเซิร์ฟเวอร์นี้เพื่อการดีบักแบบรีโมต ทั้งเซิร์ฟเวอร์และไคลเอนต์ต้องมาจากแอสเซมบลีของเครื่องมือตรวจแก้จุดบกพร่องเดียวกัน
ฆ่า.exe ยูทิลิตี้สำหรับการสิ้นสุดกระบวนการ
รายการ.exe ยูทิลิตี้สำหรับแสดงเนื้อหาของไฟล์บนหน้าจอ ยูทิลิตี้ขนาดเล็กนี้มีวัตถุประสงค์เดียวคือการดูข้อความขนาดใหญ่หรือไฟล์บันทึก ใช้พื้นที่หน่วยความจำน้อยเนื่องจากโหลดข้อความเป็นส่วนๆ
logger.exe ดีบักเกอร์ขนาดเล็กที่สามารถทำงานได้เพียงกระบวนการเดียวเท่านั้น ยูทิลิตี้นี้จะแทรก logexts.dll ลงในพื้นที่กระบวนการ ซึ่งจะบันทึกการเรียกใช้ฟังก์ชันทั้งหมดและการดำเนินการอื่นๆ ของโปรแกรมที่กำลังศึกษาอยู่
logviewer.exe ยูทิลิตี้สำหรับการดูบันทึกที่บันทึกโดยดีบักเกอร์ logger.exe
ntsd.exe ดีบักเกอร์สัญลักษณ์ Microsoft NT (NTSD) ดีบักเกอร์เหมือนกับ cdb ยกเว้นว่าจะสร้างหน้าต่างข้อความเมื่อเปิดใช้งาน เช่นเดียวกับ cdb ntsd สามารถดีบั๊กทั้งแอปพลิเคชันคอนโซลและแอปพลิเคชันกราฟิก
pdbcopy.exe ยูทิลิตี้สำหรับการลบสัญลักษณ์ส่วนตัวออกจากไฟล์สัญลักษณ์ ควบคุมสัญลักษณ์สาธารณะที่รวมอยู่ในไฟล์สัญลักษณ์
ระยะไกล.exe ยูทิลิตี้สำหรับการดีบักระยะไกลและการควบคุมระยะไกลของคอนโซลดีบักเกอร์ KD, CDB และ NTSD ช่วยให้คุณสามารถเรียกใช้ดีบักเกอร์คอนโซลเหล่านี้ทั้งหมดจากระยะไกล
rtlist.exe โปรแกรมดูงานระยะไกล ยูทิลิตี้นี้ใช้เพื่อแสดงรายการกระบวนการที่ทำงานอยู่ผ่านกระบวนการเซิร์ฟเวอร์ DbgSrv
symchk.exe ยูทิลิตี้สำหรับการดาวน์โหลดสัญลักษณ์จากเซิร์ฟเวอร์สัญลักษณ์ของ Microsoft และสร้างแคชสัญลักษณ์ในเครื่อง
ซิมสโตร์.exe ยูทิลิตี้สำหรับการสร้างเครือข่ายหรือที่เก็บสัญลักษณ์ในเครื่อง (2 ระดับ/3 ระดับ) ที่เก็บข้อมูลสัญลักษณ์เป็นไดเร็กทอรีเฉพาะบนดิสก์ซึ่งสร้างขึ้นตามโครงสร้างเฉพาะและมีสัญลักษณ์ โครงสร้างของโฟลเดอร์ย่อยที่มีชื่อเหมือนกันกับชื่อของส่วนประกอบจะถูกสร้างขึ้นในไดเร็กทอรีรากของสัญลักษณ์ ในทางกลับกัน แต่ละโฟลเดอร์ย่อยเหล่านี้จะมีโฟลเดอร์ย่อยที่ซ้อนกันซึ่งมีชื่อพิเศษที่ได้รับจากการแฮชไฟล์ไบนารี ยูทิลิตี้ Symstore จะสแกนโฟลเดอร์คอมโพเนนต์และเพิ่มคอมโพเนนต์ใหม่ลงในที่เก็บสัญลักษณ์ ซึ่งไคลเอนต์สามารถดึงข้อมูลเหล่านั้นได้ ว่ากันว่า Symstore ใช้เพื่อรับสัญลักษณ์จากคลังเก็บของ 0 ชั้น และใส่ไว้ในคลังเก็บของ 2 ชั้น/3 ชั้น
tlist.exe โปรแกรมดูงาน ยูทิลิตี้สำหรับแสดงรายการกระบวนการที่กำลังทำงานอยู่ทั้งหมด
umdh.exe ยูทิลิตี้ฮีปดัมพ์โหมดผู้ใช้ ยูทิลิตี้สำหรับการวิเคราะห์ฮีปของกระบวนการที่เลือก ช่วยให้คุณแสดงพารามิเตอร์ต่างๆ สำหรับฮีป
usbview.exe โปรแกรมดู USB ยูทิลิตี้สำหรับการดูอุปกรณ์ USB ที่เชื่อมต่อกับคอมพิวเตอร์
vmdemux.exe อุปกรณ์แยกส่วนเครื่องเสมือน สร้างไปป์ที่มีชื่อหลายรายการสำหรับการเชื่อมต่อ COM เดียว ช่องสัญญาณใช้ในการดีบักส่วนประกอบต่างๆ ของเครื่องเสมือน
windbg.exe โหมดผู้ใช้และดีบักเกอร์โหมดเคอร์เนลพร้อม GUI