C-SPYの概要
統合環境
C-SPY は、組込みアプリケーション用の高級言語デバッガです。IAR のコンパイラおよびアセンブラとともに使用することを目的としており、IDEに完全に統合されているため、同一アプリケーション内での開発とデバッグが可能になります。これにより以下のようなことが発生することがあります。
デバッグ中に編集
デバッグセッション中に、デバッグの制御に使用するものと同じソースコードウィンドウで直接修正を行うことができます。変更内容は、次にプロジェクトをリビルドするときに有効になります。
開発サイクル中の任意の位置へのブレークポイントの設定
デバッガを実行していないときもブレークポイント定義を確認および修正することができ、ブレークポイント定義フローを編集中のテキストで確認および修正できます。ウォッチプロパティ、ウィンドウレイアウト、レジスタグループなどのデバッグ設定は、デバッグセッションが終わるまで保持されます。
注:デバッガ実行中のときにブレークポイントを設定することは、すべてのコアおよびデバイスでC-SPYシミュレータによってサポートされていません。
IAR Embedded Workbench のワークスペースで開いているウィンドウはすべて、C-SPY デバッガを起動してもそのまま開いています。それ以外に、C-SPY 固有の複数のウィンドウが開かれます。
C-SPY デバッガの特長
IAR はツールチェーン全体を提供しているため、コンパイラやリンカの出力にデバッガ用の詳細なデバッグ情報を含めることができ、デバッグ時に非常に役立ちます。
C-SPY は以下のような一般的特長があります。
ソースおよび逆アセンブリレベルのデバッグ
C-SPYでは、C/C++とアセンブラの両方のソースコードで、ソースと逆アセンブリのデバッグを必要に応じて切り替えることができます。
関数呼び出しのステップ実行
ソースレベルのステップ実行の最小単位が行単位である従来のデバッガとは異なり、C-SPYではすべての文および関数呼び出しがステップポイントとして認識されるため、より詳細な制御が可能です。つまり、式に含まれる呼び出しと、他の関数への呼び出しのパラメータとして記述されている呼び出しの両方をステップ実行できます。パラメータ中の呼び出しのステップ実行は、オブジェクトのコンストラクタなどのように、多数の追加関数呼び出しが行われるC++コードで特に便利です。
コード/データブレークポイント
C-SPYのブレークポイントシステムでは、デバッグ対象のアプリケーションでさまざまなブレークポイントを設定し、目的箇所で実行を停止することができます。たとえば、ブレークポイントを設定して、プログラムロジックが正しいかどうかや、データアクセスに設定してデータが変更されたタイミングと方法を調べたりできます。
変数および式のモニタ
変数および式の場合、さまざまな機能から選択できます。指定した変数および式セットの値を、連続またはオンデマンドで簡単にモニタすることができます。また、ローカル変数や静的変数だけをモニタするよう選択も可能です。
コンテナ対応
C-SPYでアプリケーションを実行すると、STLのリストやベクタなどのライブラリデータ型の要素を表示することができます。これにより、C++ STLコンテナの使用時に内容を簡単に把握してデバッグすることができます。
コールスタック情報
コンパイラは、詳細なコールスタック情報を生成します。これにより、実行に影響することなく、プログラムカウンタがどこを指していても、関数呼び出しの完全なコールスタックをデバッガで表示できます。コールスタックで任意の関数を選択し、その関数についてローカル変数やレジスタの情報を表示することができます。
強力なマクロシステム
C-SPYは強力な内蔵マクロシステムを装備しており、複雑なアクションを定義して実行することができます。C-SPYマクロは、単独で、あるいは複雑なブレークポイントと組み合わせて使用できます。一部のコアやデバイスでは、割込みシミュレーションシステムを使用し、さまざまなタスクを実行できます。
C-SPYデバッガのその他の特長
他にも、以下のような特長があります。
スレッド実行により、ターゲットアプリケーションの実行中もIDEの応答性を維持
自動ステップ実行
ソースブラウザで、関数、型、変数を簡単に表示可能
さまざまな変数の型を認識
設定可能なレジスタ(CPU、ペリフェラル)、メモリウィンドウ
オーバフローの検出機能を持った、グラフィック表示のスタックビュー
コードカバレッジ (すべてのコアおよびデバイスでC-SPYシミュレータによってサポートされていません)
イベントカウンタのパフォーマンスモニタリングおよびパフォーマンスモニタリングユニット(PMU)介したCPUクロックサイクルをサポートします
ターゲットアプリケーションは、ファイルI/Oを使用してホストPCのファイルにアクセス可能
オプションのターミナルI/Oエミュレーション
RTOS 認識
C-SPY は RTOS 認識デバッグをサポートしています。
以下のオペレーティングシステムが現在サポートされています。
AVIX-RT
Azure RTOS ThreadX
CMX-RTX
CMX-Tiny+
eForce mC3/Compact
eSysTech X realtime kernel
FreeRTOS、 OpenRTOS、SafeRTOS
Freescale MQX
Micrium uC/OS-II
Micrium uC/OS-III
Micro Digital SMX
MISPO NORTi
OSEK Run Time Interface (ORTI)
RTXC Quadros
Segger embOS
unicoi Fusion
RTOS プラグインモジュールは、IAR かサードパーティより提供されます。サポートされている RTOS モジュールについては、ソフトウェア販売代理店かIAR の担当者までお問い合せください。また、IAR の Web サイトでも情報を提供しています。
C-SPY RTOS 認識プラグインモジュールを使用すると、RTOS 上で構築されたアプリケーションを高度に制御し、モニタできます。モニタできるのは、タスクリスト、キュー、セマフォ、メールボックス、さまざまな RTOS システム変数などの RTOS 固有の項目です。タスク固有のブレークポイントとタスク固有のステップ実行により、タスクを簡単にデバッグできます。
デバッグセッションが開始されると、ロードされたプラグイン独自のメニューとウィンドウ、ボタンが追加されます(RTOS がアプリケーションとリンクされている場合)。他の RTOS 認識プラグインモジュールについては、メーカのプラグインモジュールを参照してください。RTOS 文書へのリンクについては、[ヘルプ]メニューから入手可能なリリースノートを参照してください。