Если 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