Mister Download Manager
  1. หน้าหลัก
  2. วิธีใช้
  3. รายงานข้อขัดข้อง

รายงานข้อขัดข้อง

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

หน้าต่างรายงานข้อผิดพลาดหลังจาก MDM หยุดตอบสนอง

สิ่งที่คุณเห็น

  • Mister Download Manager ปิดโดยไม่คาดคิด: MDM ขัดข้อง หรือเกิดข้อผิดพลาดภายในและปิดตัวลง
  • Mister Download Manager หยุดตอบสนอง: หน้าต่างไม่ตอบสนองเป็นเวลา 8 วินาที MDM ยังคงทำงานอยู่แต่ค้าง สิ้นสุดและเริ่ม MDM ใหม่ จะปิดสำเนาที่ค้างและเริ่มใหม่ หาก MDM กลับมาตอบสนองได้เอง หน้าต่างจะแจ้งให้ทราบ

ในหน้าต่าง:

  1. คุณกำลังทำอะไรอยู่เมื่อเกิดเหตุการณ์นี้ขึ้น? เป็นทางเลือก คำไม่กี่คำ เช่น "ฉันเปิดเพิ่ม URL" จะช่วยได้มาก
  2. รายงาน แสดงทุกสิ่งที่ถูกส่งไป อ่านก่อนได้หากต้องการ
  3. ส่งบน GitHub จะเปิดฟอร์ม รายงานข้อขัดข้อง ของ GitHub ในเบราว์เซอร์ของคุณ ซึ่งกรอกข้อมูลไว้แล้ว พร้อมกับโฟลเดอร์ที่เก็บรายงาน ลากไฟล์รายงานลงในฟอร์ม ตรวจสอบและส่ง คุณต้องมีบัญชี GitHub ไม่มีอะไรถูกส่งไปเอง
  4. หากมีคนรายงานปัญหาเดียวกันแล้ว หน้าต่างจะแจ้งให้ทราบ (รายงานแล้วว่าเป็นปัญหา #…) เปิดปัญหาที่รายงาน จะเปิดปัญหานั้นและคัดลอกรายงานของคุณไปยังคลิปบอร์ด เพื่อให้คุณสามารถเพิ่มเป็นความคิดเห็นได้

ปุ่มอื่นๆ จะคัดลอกรายงาน เปิดโฟลเดอร์ หรือเริ่ม MDM ใหม่อีกครั้ง

รายงานประกอบด้วยอะไรบ้าง

  • สิ่งที่เกิดขึ้น: ข้อผิดพลาดและตำแหน่งในโค้ดของ MDM ที่เกิดเหตุการณ์ขึ้น
  • สแต็ก: ตำแหน่งในโค้ดของ MDM ที่ขัดข้องหรือค้าง และสิ่งที่ส่วนอื่นๆ กำลังทำอยู่
  • บันทึกเหตุการณ์ล่าสุดของ MDM: เช่น "คำสั่ง AddUrl" หรือ "หน้าต่างเปิด: add-url"
  • ระบบ: เวอร์ชันของ MDM และวิธีการติดตั้ง ระบบปฏิบัติการและเวอร์ชัน โปรเซสเซอร์ ภาษาและธีม และจำนวนการดาวน์โหลดและคิวที่คุณมี นี่เป็นเพียงจำนวนเท่านั้น

ไม่มีสิ่งเหล่านี้:

  • ที่อยู่ดาวน์โหลดหรือชื่อไฟล์ของคุณ;
  • ชื่อผู้ใช้ของคุณ ซึ่งแสดงเป็น ~ ในเส้นทางโฟลเดอร์

หากข้อความแสดงข้อผิดพลาดอ้างอิงถึงสิ่งที่คุณพิมพ์ ข้อความนั้นจะอยู่ในรายงาน ดังนั้นควรอ่านก่อนส่ง

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

รายงานถูกเก็บไว้ที่ไหน

ในโฟลเดอร์ข้อมูลของ MDM:

  • crashes\: แต่ละรายงาน (.txt) และข้อมูลข้อขัดข้อง (.dmp);
  • logs\: บันทึกเหตุการณ์ของ MDM (mdm.log โดยมีไฟล์เก่ากว่าเป็น mdm.1.log เป็นต้น ขนาด 2 MB ต่อไฟล์)

โฟลเดอร์ข้อมูลของ MDM คือ %APPDATA%\misterdownloadmanager บน Windows, ~/Library/Application Support/misterdownloadmanager บน macOS และ ~/.local/share/misterdownloadmanager บน Linux ใน โหมดพกพา จะเป็นโฟลเดอร์ data ถัดจากโปรแกรม

บันทึกเหตุการณ์จะบันทึกสิ่งที่ MDM ทำ ดังนั้นรายงานสามารถแสดงสิ่งที่นำไปสู่ปัญหาได้ หากต้องการบันทึกรายละเอียดเพิ่มเติม ให้เริ่ม MDM ด้วยตัวแปรสภาพแวดล้อม MDM_LOG=debug

สำหรับนักพัฒนา

วิธีการทำงาน: MDM สำเนาที่สอง ซึ่งเป็น มอนิเตอร์ จะเริ่มทำงานพร้อมกับ --crash-monitor โค้ดข้อขัดข้องอยู่ใน crates/crash และ crates/app/src/crash.rs

  • การตรวจจับปัญหา เมื่อ MDM ขัดข้อง (ข้อยกเว้นของ Windows, สัญญาณบน Linux, ข้อยกเว้นของ Mach บน macOS), เกิดข้อผิดพลาดร้ายแรง หรือค้าง จะขอการดัมพ์จากมอนิเตอร์ การค้างคือเฟรมของหน้าต่างที่ทำงานเกิน 8 วินาที ซึ่งถูกตรวจจับโดยเธรดเฝ้าระวังที่ไม่สนใจเวลาที่ใช้ในการพัก มอนิเตอร์จะเขียน มินิดัมพ์ ของทุกเธรดจากภายนอก ผ่าน minidumper และ crash-handler กระบวนการที่ขัดข้องจะไม่เขียนดัมพ์ของตัวเอง ซึ่งเป็นวิธีที่ Firefox, Crashpad และ Sentry ทำเช่นกัน
  • การอ่านไฟล์ดัมพ์ ตัวมอนิเตอร์จะอ่านไฟล์ดัมพ์ด้วย rust-minidump ของ Mozilla โดยใช้สัญลักษณ์ Breakpad ของเวอร์ชันที่เผยแพร่เมื่อพบ หรือใช้ข้อมูลดีบักดั้งเดิมที่อยู่ข้างๆ บิลด์จากซอร์ส ลายเซ็น ของรายงาน (เช่น freeze in misterdownloadmanager::winui::combo_edit) จะยังคงเหมือนเดิมสำหรับรายงานปัญหาเดียวกัน และหน้าต่างจะค้นหาปัญหาที่มีอยู่ด้วยลายเซ็นนี้
  • สัญลักษณ์ บิลด์ที่เผยแพร่จะเก็บตารางบรรทัด (debug = "line-tables-only") แต่ไม่มีการดาวน์โหลดใดๆ ที่รวมข้อมูลดีบักไว้ CI จะแปลงข้อมูลนี้เป็น MisterDownloadManager-<version>-symbols-<platform>.zip (tools/installer/symbols.py โดยใช้ dump_syms ของ Mozilla) ซึ่งเผยแพร่พร้อมกับไฟล์อื่นๆ ของเวอร์ชันที่เผยแพร่ หน้าต่างรายงานจะดึงไฟล์ zip สำหรับเวอร์ชันของตัวเองเมื่อสแต็กแสดงที่อยู่เปล่า
  • .dmp จากปัญหา:

cargo run -p mdm-crash --bin mdm-symbolicate -- crash.dmp MisterDownloadManager-<version>-symbols-windows-x64.zip

  • การทดสอบ cargo test -p mdm-crash จะจำลองการค้าง, การตื่นตระหนก และการขัดข้องจริง (examples/crashy.rs) และตรวจสอบลายเซ็นของแต่ละรายงาน หากต้องการลองใช้ในแอป ให้เริ่ม MDM ด้วย MDM_CRASH_TEST=1 จากนั้นเรียกใช้ misterdownloadmanager /show crash-test:freeze (หรือ panic, crash, abort)

ฟรี, โอเพนซอร์ส, ไม่มีโฆษณา, ไม่มีช่วงทดลองใช้

ดาวน์โหลด Mister Download Manager