カスタムMEX関数に​関連するMATLAB​のクラッシュをどのよ​うにトラブルシュート​すればよいですか?

11 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 24 Juil 2024
コードを実行中にMATLABがクラッシュし、テクニカルサポートエンジニアから原因がMEX関数である可能性があると言われました。MATLABのクラッシュをどのようにトラブルシュートすればよいですか?

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 29 Août 2024
Modifié(e) : MathWorks Support Team le 29 Août 2024
MATLABのクラッシュをトラブルシュートするためには、まずどのMEX関数がMATLABのクラッシュを引き起こしたのかを特定する必要があります。MEX関数の作成者であるかどうかによって、トラブルシュートの方法は異なります。
MATLABのクラッシュを引き起こしたMEX関数の特定
まず、MATLABから最新のクラッシュログを取得する必要があります。クラッシュダンプファイル(`matlab_crash_dump.XXXX`)の場所については、以下のMATLAB Answersの投稿を参照してください:
[クラッシュダンプファイルの場所](https://www.mathworks.com/matlabcentral/answers/100816-how-do-i-locate-the-crash-dump-files-generated-by-matlab)
最近のクラッシュに関連するクラッシュログを取得したら、以下のMATLAB Answersの投稿を参照して、MATLABのクラッシュを引き起こしたMEX関数を特定してください:
[MEX関数の特定](https://www.mathworks.com/matlabcentral/answers/203729-how-do-i-identify-the-mex-function-that-caused-matlab-to-crash)
C++ MEX APIベースの関数の独立プロセス実行
もしC++ MEX APIを使用している場合、MEX関数をMATLABプロセスとは別のプロセスで実行することができます。MEX関数がクラッシュしてもMATLABがクラッシュするのを防ぐために、別プロセスで実行することは有効です。これにより、MEX関数のトラブルシュートが容易になります。詳細については、以下のリンクを参照してください:
[C++ MEX関数の独立プロセス実行](https://www.mathworks.com/help/matlab/matlab_external/out-of-process-execution-of-c-mex-functions.html)
なお、この機能はC++ MEX APIベースの関数にのみ利用可能であり、C MEX APIベースの関数には使用できません。C++ MEX APIベースの関数の作成方法については、以下のリンクを参照してください:
[C++ MEX APIベースの関数の作成](https://www.mathworks.com/help/matlab/cpp-mex-file-applications.html)
MEX関数のトラブルシュート
クラッシュを引き起こしたMEX関数が特定できたら、そのMEX関数の作成者であるかどうかによって、次の2つのオプションがあります。
1.
MEX関数の作成者である場合
:
   MEX関数のトラブルシュートに関するリソースがドキュメントにあります。以下のドキュメントページを参照して、MEX関数のデバッグ方法について学んでください:
   - [MEX関数の紹介](https://www.mathworks.com/help/matlab/matlab_external/choosing-mex-applications.html)
   - [MEX関数のトラブルシュート](https://www.mathworks.com/help/matlab/call-mex-files-1.html)
2.
MEX関数の作成者でない場合
:
   MEX関数の元の作成者に連絡して、問題についてご相談ください。元の作成者は上記のリソースを利用してMEX関数のトラブルシュートを支援するか、ソースコードを提供して自分でトラブルシュートできるようにするかもしれません。
ドキュメントの情報を利用してカスタムMEX関数をトラブルシュートできない場合は、テクニカルサポートに連絡することもできます。テクニカルサポートでは、MEXのセットアップ問題、コンパイラ、ライブラリ依存関係、およびMEX関数の作成とデバッグに関する一般的なベストプラクティスについてのガイダンスを提供します。

Plus de réponses (0)

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!