Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

SIL 実行における生成コードのデバッグ

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

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

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

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

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

メモ

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

SIL 実行では次のデバッガーがサポートされます。

  • Windows®Microsoft® Visual Studio® デバッガー。

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

  • macOS の LLDB デバッガー (LLBD)。

メモ

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

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

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

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

  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.

...
...

関連するトピック