SIL または PIL の実行中における生成コードのデバッグ
ソフトウェアインザループ (SIL) またはプロセッサインザループ (PIL) の実行に失敗した場合や、元の関数の出力と生成コードの出力に差異がある場合は、デバッガーを有効にして SIL または PIL を再実行できます。ブレークポイントを挿入すると、コード セクションの動作を観察でき、問題の原因を理解するのに役立つことがあります。
SIL または PIL の実行エラーについて、標準出力および標準エラー ストリームからの情報を MATLAB® コマンド ウィンドウに表示することもできます。以下に例を示します。
コード内の
printf
ステートメントからの出力。ランタイム エラーの検出を有効にしている場合は
stderr
に送信されるメッセージ。一部の低水準システム メッセージ。
メモ
SIL の実行中に、ターゲット アプリケーションは stdout
ストリームと stderr
ストリームをリダイレクトします。アプリケーションが終了すると、リダイレクトされたストリームからの情報が MATLAB コマンド ウィンドウに表示されます。ターゲット アプリケーションは、POSIX® 信号 SIGFPE
、SIGILL
、SIGABRT
および 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 実行を行うには次のようにします。
[コード生成] ページで [コードの検証] をクリックします。
[SIL または PIL でソースレベル デバッグを有効にする] チェック ボックスをオンにします。
[生成されたコードの実行] をクリックします。
Windows コンピューターの場合、たとえば、Microsoft Visual Studio IDE で、関数 user_fn
_initialize
と関数 user_fn
の先頭にデバッガーのブレークポイントが設定された状態で
ファイルまたは user_fn
.c
ファイルが開きます。user_fn
.cpp
これで、デバッガーの機能を使用してコードの動作を観察できます。たとえば、コードをステップ実行したり、変数を調べたりできます。
デバッグ セッションを終了するには次のようにします。
すべてのブレークポイントを削除します。
[続行] ボタン (F5) をクリックします。
SIL 実行が最後まで実行されます。
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 実行を行うには次のようにします。
[コード生成] ページで [コードの検証] をクリックします。
[SIL または PIL でソースレベル デバッグを有効にする] チェック ボックスをオンにします。
[生成されたコードの実行] をクリックします。