MATLAB が予期せず終了した場合
MATLAB® で内部エラーが検出されると、MATLAB には、次の 2 つのダイアログ ボックスのいずれかが表示されます。[MathWorks® クラッシュ レポーター] または [MathWorks クラッシュ アナライザー]。いずれの場合も、MATLAB の内部状態は不安定であり、適切に使用することができません。これらのダイアログ ボックスが表示されない場合は、クラッシュ ファイルを手動で検索して送信できます。
MathWorks クラッシュ レポーター
MATLAB がクラッシュすると、[MathWorks クラッシュ レポーター] ダイアログ ボックスが表示され、クラッシュ レポートを MathWorks テクニカル サポートに送信するように求められます。必要に応じて、再現手順を提供したり、クラッシュ時に行っていた処理について説明したりすることもできます。[レポートの送信] をクリックして有効な電子メール アドレスを入力すると、すぐに自動電子メールが送られてきます。クラッシュに関するサポートが必要な場合は、電子メールに返信してください。テクニカル サポートのエージェントからご連絡いたします。電子メールが届かない場合は、MathWorks の「サポートへのお問い合わせ」ページから MathWorks テクニカル サポートに直接お問い合わせください。
クラッシュ レポーターでは、問題の原因の診断に関連する情報が表示されます。この情報は、MATLAB のクラッシュの原因によって異なります。クラッシュの原因がわかっている場合は、MathWorks Bug Reports データベースで、それに関する情報を確認できます。
MathWorks クラッシュ アナライザー
MATLAB が予期せず終了した場合、MATLAB は、マシン上でクラッシュ レポートをローカルで解析し、考えられる原因を特定します。解決法の候補がある場合、MATLAB に [MathWorks クラッシュ アナライザー] ダイアログ ボックスが表示されます。[解決法の表示] をクリックすると、関連する MATLAB Answers™ ページまたは MathWorks Bug Reports データベースを指す Web ページがブラウザーで開きます。修正を適用するには、MATLAB を再起動しなければなりません。
提供された解決策が適切ではない場合は、[レポートの送信] をクリックし、ウィンドウで再現手順を入力します。
修正を適用してもクラッシュが発生する場合は、[レポートの送信] をクリックするか、MathWorks の「サポートへのお問い合わせ」ページから MathWorks テクニカル サポートに連絡してサポート ケースを作成してください。
手動によるクラッシュ ファイルの送信
状況によっては、クラッシュ レポーターが開かない場合があります。たとえば、-nodisplay オプションを指定して MATLAB を起動した場合、クラッシュ レポーターは使用できません。MATLAB がどのようにクラッシュしたのかに応じて、テキスト クラッシュ レポートまたはミニダンプ クラッシュ レポートのいずれかが生成されます。追加のログ ファイルが生成される場合もあります。クラッシュ レポートおよびログ ファイルを MathWorks テクニカル サポートに電子メールで送信できます。
クラッシュ ログ ファイルの場所の特定
MATLAB がクラッシュすると、次の名前のログ ファイルが最大 3 つ生成されることがあります。
matlab_crash_dump.processIDjava.log.processIDhs_error_pidprocessID.log
これらのファイル名では、processID は 4 桁のプロセス ID を表します。たとえば、matlab_crash_dump.3944、java.log.3944、hs_error_pid3944.log という名前のクラッシュ ダンプが表示される場合があります。クラッシュ ログ ファイルの場所は、オペレーティング システムによって異なります。MATLAB コマンド ウィンドウまたはオペレーティング システムを使用して、それらの場所に移動できます。
次のコードを使用して、MATLAB コマンド ウィンドウからクラッシュ ログ ファイルの場所を直接特定できます。このコードはクラッシュ ログを含むテーブル files を返します。date 列を使用して、どのクラッシュ ログが対象のクラッシュに関連しているかを判断します。
prefixes = ["matlab_crash_dump"; "java.log"; "hs_err"]; files = struct; log_dir = "~"; if ispc log_dir = tempdir; end for i = 1:length(prefixes) log_pattern = fullfile(log_dir,prefixes(i)+"*"); if ~isempty(dir(log_pattern)) files = struct2table(dir(log_pattern)); files = sortrows(files,"datenum","descend") end end
次の方法を使用して、オペレーティング システムでクラッシュ ログ ファイルを手動で検索することもできます。
プラットフォーム | システム内の移動 |
|---|---|
Windows® | Windows プラットフォームでは、クラッシュ ログ ファイルは、オペレーティング システムが一時ファイルを保存するフォルダーにあります。 %temp% C:\Users\%username%\AppData\Local\Temp |
| macOS | macOS プラットフォームでは、クラッシュ ログ ファイルはホーム フォルダーに保存されます。Finder メニュー バーから [移動]、[ホーム] を選択してホーム フォルダーを開きます。あるいは、ターミナルから「 |
| Linux® | Linux プラットフォームでは、クラッシュ ログ ファイルはホーム フォルダーに保存されます。ターミナルから「 |
クラッシュ レポート フォルダーの場所の特定
R2025a 以降
前のセクションにリストされている場所で関連クラッシュ ログ ファイルが見つからない場合は、crash_reports フォルダーにミニダンプ ファイルがある可能性があります。ミニダンプのファイル名は、英字、数字、ダッシュから成る長い文字列と、それに続くファイル拡張子 .dmp で構成される汎用一意識別子 (UUID) です。たとえば、ac60e913-886c-466b-ae99-bceef3c25f19.dmp のようなミニダンプ ファイル名が表示される場合があります。 関数を使用して matlab.crashhandling.crashReportFoldercrash_reports フォルダーの場所を特定することも、そのフォルダーに手動で移動することもできます。
次のコマンドを使用して、MATLAB コマンド ウィンドウからクラッシュ レポート フォルダーの場所を特定できます。
プラットフォーム | フォルダー |
|---|---|
| Windows | cd(fullfile(matlab.crashhandling.crashReportFolder,"reports")) |
| macOS および Linux | cd(fullfile(matlab.crashhandling.crashReportFolder,"completed")) |
次のコードを使用して、すべてのミニダンプを返すことができます。このコードはミニダンプを含むテーブル files を返します。date 列を使用して、どのミニダンプが対象のクラッシュに関連しているかを判断します。
files = struct; report_dir = "completed"; if ispc report_dir = "reports"; end pattern = fullfile(matlab.crashhandling.crashReportFolder,report_dir,'*.dmp'); if ~isempty(dir(pattern)) files = struct2table(dir(pattern)); files = sortrows(files,"datenum","descend") end
あるいは、手動で crash_reports フォルダーに移動することもできます。
プラットフォーム | フォルダー |
|---|---|
| Windows | %LOCALAPPDATA%\MathWorks\release-hash\crash_reports |
| macOS | $HOME/Library/Application Support/MathWorks/release-hash/crash_reports |
| Linux | $HOME/.MathWorks/release-hash/crash_reports |
これらのフォルダー パスでは、"release-hash" は各 MATLAB インストール環境に固有の識別子を表します。したがって、クラッシュ ダンプ ファイルを含むフォルダーが複数見つかる場合があります。関連するクラッシュ ダンプを見つけるには、クラッシュが発生した時刻に近いタイムスタンプが付いた .dmp ファイルを各フォルダーで探します。