Main Content

SIL または PIL のシミュレーション中における生成コードのデバッグ

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

SIL または PIL のシミュレーションのエラーについて、標準出力および標準エラー ストリームからの情報を診断ビューアーで表示することもできます。以下に例を示します。

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

  • stderr に送信されるエラー メッセージ。

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

SIL シミュレーション中に、ターゲット アプリケーションは stdout ストリームと stderr ストリームをリダイレクトします。アプリケーションが終了すると、リダイレクトされたストリームからの情報が診断ビューアーに表示されます。ターゲット アプリケーションは、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 デバッグを実行できるのは、Simulink® 製品ファミリでサポートされる Microsoft Visual C++® コンパイラ、Xcode コンパイラ、GNU GCC コンパイラの場合のみです。詳細については、サポートされるコンパイラを参照してください。

SIL シミュレーションでデバッガーを有効にするには、次のいずれかの操作を実行します。

  • [SIL/PIL] タブの [設定] ギャラリーで、[SIL/PIL 設定][デバッグ] をクリックします。

  • [コンフィギュレーション パラメーター] ダイアログ ボックスで、[SIL または PIL でソースレベル デバッグを有効にする] チェック ボックスをオンにします。

最上位モデルに Model ブロックがある場合、最上位モデルの [SIL または PIL でソースレベル デバッグを有効にする] パラメーターで参照モデルの対応するパラメーターがオーバーライドされます。

SIL シミュレーションを実行すると、たとえば、Microsoft Visual Studio IDE で、関数 model_initialize と関数 model_step の先頭にデバッガーのブレークポイントが設定された状態で model.c ファイルまたは model.cpp ファイルが開きます。

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

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

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

  2. [Continue] ボタン (F5 キー) をクリックします。

    SIL シミュレーションが最後まで実行され、Microsoft Visual Studio IDE が閉じます。

メモ

Microsoft Visual Studio IDE では、[デバッグ][デバッグを中止] を選択すると、SIL シミュレーションがタイムアウトし、次のエラー メッセージが表示されます。

The timeout of 1 seconds for receiving data from the rtiostream 
interface has been exceeded. There are multiple possible causes 
for this failure.
... 
...

PIL のデバッグ

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

PIL シミュレーションでデバッガーを有効にするには、次のいずれかの操作を行います。

  • [SIL/PIL] タブの [設定] ギャラリーで、[SIL/PIL 設定][デバッグ] をクリックします。

  • [コンフィギュレーション パラメーター] ダイアログ ボックスで、[SIL または PIL でソースレベル デバッグを有効にする] チェック ボックスをオンにします。

最上位モデルに Model ブロックがある場合、最上位モデルの [SIL または PIL でソースレベル デバッグを有効にする] パラメーターで参照モデルの対応するパラメーターがオーバーライドされます。

関連するトピック