Main Content

コード生成エラーの検出とデバッグ

デバッグ方法

コード生成用にアルゴリズムを準備するには、MATLAB® アプリ内で規則に従わないコードを検出し、訂正するためのデバッグ方法を選択してください。特に、これらのコードが互いの関数を呼び出す多くの MATLAB ファイルから構成されている場合は、デバッグ方法を確立しておくことが重要になります。以下は 2 つの最良の方法です。

デバッグ方法何をすべきか長所短所

ボトムアップ検証

  1. 最下位のレベル (葉) の関数がコード生成に適していることを確認します。

  2. 関数階層をひとつひとつ上りながら各関数をコンパイルして確認し、最上位レベルの関数で終了します。

  • 効率

  • 安全

  • 構文違反を容易に分離

最下位から作業するアプリケーション テストが必要

トップダウン検証

  1. fiaccel がコンパイルしないように、最上位レベルの関数によって呼び出されるすべての関数が外部関数であることを宣言します。

  2. 最上位レベルの関数がコード生成に適していることを確認します。

  3. 関数階層の下位レベルに向かって、次の作業を行います。

    a. 外部関数の宣言を 1 つずつ削除します。

    b. 最下位レベルの関数に到達するまで、各関数をコンパイルして検証します。

最上位レベルのテストを維持できます。

以下のような、コードの検証後に削除しなければならない余分なコードが導入される

  • 外部宣言

  • 外部関数から返された不明瞭な値を不明瞭ではない値に変換するために必要な追加の代入ステートメント

設計時のエラー検出

MATLAB アルゴリズムの作成時に MEX ファイル作成に関する潜在的な問題を検出するには、fiaccel でコンパイルするコードに %#codegen 命令を追加します。この命令を追加することにより、アルゴリズムからコードを生成し、MATLAB コード解析時の詳細な診断をオンにします。

コンパイル時のエラー検出

MATLAB アルゴリズムからコードを生成する前に、コード生成エラーの検出とデバッグの説明に従って、コンパイル時にエラーを引き起こすような構文違反やセマンティクス違反がアルゴリズムに含まれていないことを確認しなければなりません。

コンパイル時には、fiaccel によって潜在的な構文違反がすべてチェックされます。fiaccel によってエラーや警告が検出されると、自動的にコード生成レポートが生成されます。このレポートでは問題が説明され、違反するコードへのリンクが提供されます。コード生成レポートを参照してください。

MATLAB コードによって MATLAB パス上の関数が呼び出される場合、それらが外部関数であることが宣言されていない限り、fiaccel ではこれらの関数のコンパイルが試行されます。