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 МБ кожен).

Папка даних 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