Main Content

SIL または PIL の実行中における生成コードのデバッグ

ソフトウェアインザループ (SIL) またはプロセッサインザループ (PIL) の実行に失敗した場合や、元の関数の出力と生成コードの出力に差異がある場合は、デバッガーを有効にして SIL または PIL を再実行できます。ブレークポイントを挿入すると、コード セクションの動作を観察でき、問題の原因を理解するのに役立つことがあります。

SIL または PIL の実行エラーについて、標準出力および標準エラー ストリームからの情報を MATLAB® コマンド ウィンドウに表示することもできます。以下に例を示します。

  • コード内の printf ステートメントからの出力。

  • ランタイム エラーの検出を有効にしている場合は stderr に送信されるメッセージ。

  • 一部の低水準システム メッセージ。

メモ

SIL の実行中に、ターゲット アプリケーションは stdout ストリームと stderr ストリームをリダイレクトします。アプリケーションが終了すると、リダイレクトされたストリームからの情報が MATLAB コマンド ウィンドウに表示されます。ターゲット アプリケーションは、POSIX® 信号 SIGFPESIGILLSIGABRT および SIGSEV を取得する基本的な信号ハンドラーも提供します。この信号ハンドラー用に、ターゲット アプリケーションはファイル signal.h をインクルードします。

SIL のデバッグ

次の表に、デバッガーのサポートに関する情報を示します。

オペレーティング システムサポートされているデバッガー

Windows®

Microsoft® Visual Studio® IDE。

Visual Studio Code と MinGW® GDB。MATLAB Coder™ Interface for Visual Studio Code Debugging サポート パッケージをインストールする必要があります。https://www.mathworks.com/matlabcentral/fileexchange/103555-matlab-coder-interface-for-visual-studio-code-debuggingを参照してください。

macOS

LLDB。

Visual Studio Code と LLDB。MATLAB Coder Interface for Visual Studio Code Debugging サポート パッケージをインストールする必要があります。https://www.mathworks.com/matlabcentral/fileexchange/103555-matlab-coder-interface-for-visual-studio-code-debuggingを参照してください。

Linux®

GNU® データ表示デバッガー (DDD)。

Visual Studio Code と GDB。MATLAB Coder Interface for Visual Studio Code Debugging サポート パッケージをインストールする必要があります。https://www.mathworks.com/matlabcentral/fileexchange/103555-matlab-coder-interface-for-visual-studio-code-debuggingを参照してください。

メモ

SIL デバッグを実行できるのは、MATLAB 製品ファミリでサポートされる Microsoft Visual C++® コンパイラ、Xcode コンパイラ、GNU GCC コンパイラの場合のみです。詳細については、サポートされるコンパイラを参照してください。

デバッグを有効にして SIL 実行を行うには次のようにします。

  1. [コード生成] ページで [コードの検証] をクリックします。

  2. [SIL または PIL でソースレベル デバッグを有効にする] チェック ボックスをオンにします。

  3. [生成されたコードの実行] をクリックします。

Windows コンピューターの場合、たとえば、Microsoft Visual Studio IDE で、関数 user_fn_initialize と関数 user_fn の先頭にデバッガーのブレークポイントが設定された状態で user_fn.c ファイルまたは user_fn.cpp ファイルが開きます。

これで、デバッガーの機能を使用してコードの動作を観察できます。たとえば、コードをステップ実行したり、変数を調べたりできます。

デバッグ セッションを終了するには次のようにします。

  1. すべてのブレークポイントを削除します。

  2. [続行] ボタン (F5) をクリックします。

    SIL 実行が最後まで実行されます。

  3. SIL 実行プロセスを終了するには、[テスト出力] タブで、[実行を終了するには] に続くリンクをクリックします (たとえば clear kalman01_sil)。

    Microsoft Visual Studio IDE が自動的に閉じます。

メモ

[デバッグ][デバッグを中止] を選択すると、SIL 実行がタイムアウトし、次のエラー メッセージが表示されます。

Communications error: failed to send data to the target. There might be 
multiple reasons for this failure.

...
...

PIL のデバッグ

Simulink® とターゲット ハードウェアとの PIL 接続を設定するには、target.ExecutionService オブジェクトと target.DebugExecutionTool オブジェクトを使用してデバッガーを指定します。Support PIL DebuggingおよびDebugExecutionTool Templateを参照してください。

デバッグを有効にして PIL 実行を行うには次のようにします。

  1. [コード生成] ページで [コードの検証] をクリックします。

  2. [SIL または PIL でソースレベル デバッグを有効にする] チェック ボックスをオンにします。

  3. [生成されたコードの実行] をクリックします。

関連するトピック