Main Content

MEX ファイルのセグメンテーション違反

バイナリ MEX ファイルでセグメンテーション違反またはアサーションが発生する場合、これは、MEX ファイルが保護されたメモリ、読み取り専用メモリまたは割り当てられていないメモリにアクセスしようとしたことを意味します。

このようなタイプのプログラミング エラーは追跡が難しい場合があります。セグメント化違反は、これを引き起こす論理エラーと同一時点で発生するとは限りません。プログラムによってメモリの意図しないセクションにデータが書き込まれた場合は、プログラムが破損したデータを読み取って解釈するまでエラーが発生しないことがあります。したがって、セグメンテーション違反は MEX ファイルが実行を終了した後に発生する場合があります。

メモリ破損の原因の 1 つには、関数への NULL ポインターの引き渡しがあります。この状態を確認するには、MEX ファイルにコードを追加して、MEX ライブラリおよび行列 API 関数への無効な引数をチェックします。

この種の問題をトラブルシューティングするには、デバッグ環境内で MATLAB® を実行します。

関連するトピック