Якщо Mister Download Manager неочікувано закривається або перестає відповідати, відкривається вікно звіту про збої. Воно показує, що сталося, дозволяє прочитати весь звіт і може надіслати його розробникам на GitHub. Кожен звіт допомагає виправити проблему для всіх.

Що ви бачите
- Mister Download Manager неочікувано закрився: MDM аварійно завершив роботу або зіткнувся з внутрішньою помилкою та закрився.
- Mister Download Manager перестав відповідати: його вікно не відповідало протягом 8 секунд. MDM все ще працює, але завис. Завершити та перезапустити MDM закриває завислу копію та запускає нову. Якщо MDM знову відповідає самостійно, вікно повідомляє про це.
У вікні:
- Що ви робили, коли це сталося? є необов'язковим. Кілька слів, наприклад «Я відкрив Додати URL-адресу», дуже допомагають.
- Звіт показує все, що буде надіслано. Прочитайте його спочатку, якщо бажаєте.
- Надіслати на GitHub відкриває у вашому браузері форму Звіт про збій на GitHub, вже заповнену, разом із папкою, що містить звіт. Перетягніть файл звіту у форму, перевірте його та надішліть. Вам потрібен обліковий запис GitHub. Нічого не надсилається самостійно.
- Якщо хтось вже повідомив про ту саму проблему, вікно повідомляє про це (Вже повідомлено як проблема #…). Відкрити повідомлену проблему відкриває її та поміщає ваш звіт у буфер обміну, щоб ви могли додати його як коментар.
Інші кнопки копіюють звіт, відкривають його папку або знову запускають 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