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 のデータフォルダは、Windows では %APPDATA%\misterdownloadmanager、macOS では ~/Library/Application Support/misterdownloadmanager、Linux では ~/.local/share/misterdownloadmanager です。ポータブルモード では、プログラムの隣にある data フォルダです。

ログには MDM が行ったことが記録されるため、レポートは問題の原因となったものを示すことができます。より詳細なログを記録するには、環境変数 MDM_LOG=debug を設定して MDM を起動してください。

開発者向け

仕組み: MDM の 2 番目のコピーである モニター が、--crash-monitor とともに MDM の隣で起動します。クラッシュコードは crates/crash と crates/app/src/crash.rs にあります。

  • 問題の捕捉。 MDM がクラッシュ(Windows の例外、Linux のシグナル、macOS の Mach 例外)、パニック、またはフリーズした場合、モニターにダンプを要求します。フリーズとは、スリープ時間を無視するウォッチドッグスレッドによって検出される、8 秒以上実行されているウィンドウのフレームです。モニターは、minidumper と crash-handler を介して、外部からすべてのスレッドの ミニダンプ を書き込みます。クラッシュしたプロセスは、自身のダンプを書き込むことはありません。これは Firefox、Crashpad、Sentry も同様です。
  • ダンプの読み取り。 モニターはMozillaのrust-minidumpでダンプを読み取ります。リリース版のBreakpadシンボルが見つかればそれを使用し、見つからなければソースからのビルドに付属するネイティブのデバッグ情報を使用します。レポートのシグネチャ(例:freeze in misterdownloadmanager::winui::combo_edit)は、同じ問題のレポート間で変わらず、ウィンドウはそのシグネチャで既存の問題を検索します。
  • シンボル。 リリースビルドは行テーブル(debug = "line-tables-only")を保持しますが、デバッグ情報はダウンロードに含まれません。CIはそれをMisterDownloadManager-<version>-symbols-<platform>.zip(tools/installer/symbols.py、Mozillaのdump_symsを使用)に変換し、リリース版の他のファイルとともに公開します。スタックに生のアドレスが表示された場合、レポートウィンドウは自身のバージョンに対応する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をダウンロード