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