Main Content

潜在的な相違点のレポート

MATLAB® コードから効率の良い C/C++ コードを生成すると、生成されたコードと MATLAB コード間の動作に違いが生じる場合があります。プログラムを実行すると、実行時エラー チェックで次の相違点が検出される可能性があります。実行時エラー チェックは既定では次のようになります。

  • codegenfiaccel (Fixed-Point Designer)、または MATLAB Coder™ アプリを使用して生成された MEX コードに対しては有効になります。

  • codegen または MATLAB Coder アプリを使用して生成されたスタンドアロン C/C++ コードに対しては無効になります。

コードを展開する前に相違点を識別して解決できるように、コード ジェネレーターは、"潜在的な相違" として相違点のサブセットを報告します。潜在的な相違とは、特定の状況にある場合にのみ実行時に生じる違いです。

潜在的な相違メッセージの解決

コード ジェネレーターで潜在的な相違を検出すると、レポートの [潜在的な相違] タブに相違点を示すメッセージが表示されます。MATLAB Coder アプリを使用してコードを生成する場合は、アプリ自体の [潜在的な相違] タブでメッセージを確認できます。メッセージに対応する MATLAB コードを強調表示するには、メッセージをクリックします。

潜在的な相違メッセージが示されても、必ずしも生成されたコードの実行時に相違が生じるわけではありません。潜在的な相違がアプリケーションに影響を与えるかどうか判断するには、次を行います。

  • アプリケーションのデータの範囲に対して MATLAB コードの動作を解析します。

  • MATLAB コードから生成された MEX 関数をテストします。アプリケーションで使用するデータの範囲を使用します。相違が生じた場合、MEX 関数でエラーが報告されます。

報告された相違が解析やテストで確認されたら、コードの変更を検討してください。潜在的な相違メッセージには、回避方法が示されるものがあります。潜在的な相違メッセージの詳細については、潜在的な相違メッセージを参照してください。コードを変更して実行時に相違が生じないようにしても、コード ジェネレーターで潜在的な相違が報告される場合があります。

コード ジェネレーターで検出される一連の潜在的な相違は、MEX 関数でエラーとして報告される相違のサブセットです。アプリケーション データの全範囲に対して MEX 関数をテストすることをお勧めします。

MATLAB Coder の潜在的な相違のレポートの無効化と有効化

既定では、潜在的な相違のレポートは次に対して有効化されています。

  • codegen コマンドを使用したコードの生成

  • MATLAB Coder アプリの [実行時の問題の確認] 手順

潜在的な相違のレポートを無効にするには、次を行います。

  • コード構成オブジェクトで、ReportPotentialDifferencesfalse に設定します。

  • MATLAB Coder アプリの [デバッグ] 設定で、[MATLAB との相違点をレポート] チェック ボックスをオフにします。

既定では、潜在的な相違のレポートは [コード生成] 手順および MATLAB Coder アプリのコード生成レポートで無効化されています。潜在的な相違のレポートを有効にするには、[デバッグ] 設定で、[MATLAB との相違点をレポート] チェック ボックスを選択します。

Fixed-Point Designer の潜在的な相違のレポートの無効化と有効化

既定では、潜在的な相違のレポートは、fiaccel を使用するコード高速化に対して有効になっています。これを無効にするには、コード高速化のための構成オブジェクトで、ReportPotentialDifferencesfalse に設定します。

関連するトピック