C++の使用
C++アプリケーションの作成
C++アプリケーションのコンパイルとリンク
ブレークポイントの設定と実行
フィボナッチ数列の出力
このチュートリアルでは、C++を使用してC++クラスを作成します。次に、作成したクラスを使用して2つの独立オブジェクトを作成し、アプリケーションをビルドしてデバッグします。その他に、条件付きブレークポイントの設定例を示します。
このチュートリアルでは、これまでに説明されているIAR Embedded Workbench® IDEの基本事項について習熟していることを前提としています。
C++アプリケーションの作成
このチュートリアルでは、C++機能の使用方法について説明します。チュートリアルは、以下の2つのファイルで構成されます。
*
Fibonacci.hおよびFibonacci.cppは、フィボナッチ数列を抽出できるクラスFibonacciを定義します。
*
CppTutor.cppは、Fibonacciクラスからfib1fib2の2つのクラスを作成します。さらにFibonacciクラスを使用して、2組のフィボナッチ数列を抽出します。
2つのオブジェクトが互いに独立であることを示すために、数列を異なる速度で抽出します。すなわち、ループ内で、fib1からは毎回数値を取り出しますが、fib2からは1回おきに数値を取り出します。
オブジェクトfib1はデフォルトコンストラクタを使用して作成しますが、fib2は引数として整数を受け取るコンストラクタを使用するように定義します。
C++アプリケーションのコンパイルとリンク
1
前のチュートリアルで使用したワークスペースtutorialsに新しいプロジェクトを作成して、project3と名前を付けます。
2
Fibonacci.cppCppTutor.cppの2つのファイルをproject3に追加します。
3
プロジェクト>オプションを選択して、以下のオプションが選択されていることを確認します。
 
C++プログラミング言語に切り替えるには、C++言語とC++の派生言語を選択するだけです。
4
プロジェクト>作成を選択して、アプリケーションをコンパイルして、リンクします。
別の方法として、ツールバーの作成ボタンをクリックすることもできます。作成コマンドは、変更されたファイルをコンパイルして、リンクします。
5
プロジェクト>デバッグを選択して、C-SPYデバッガを起動します。
ブレークポイントの設定と実行
1
2
オブジェクトがどのように構築されているかを調べるために、C++オブジェクトfib1の以下に示す行にブレークポイントを設定します。
Fibonacci fib1;
3
デバッグ>実行を選択するか、ツールバーの実行ボタンをクリックします。
カーソルがブレークポイントの位置に表示されます。
4
コンストラクタにステップインするには、デバッグ>ステップインを選択するか、ツールバーのステップインボタンをクリックします。そこでステップアウトをもう一度クリックします。
5
以下の行に到達するまでステップオーバでステップを実行します。
std::cout << fib1.next();
ファイルFibonacci.cppで関数nextに入るまでステップインでステップインします。
6
エディタウィンドウの左下隅にある関数に移動ボタンをクリックして、関数nthを探してダブルクリックすると、その関数が使用されている位置に移動します。以下の行の関数呼出しnth(n-1)にブレークポイントを設定します。
value = nth(n-1) + nth(n-2);
7
関数呼出しを数レベル下までバックトレースし、各関数呼出しのパラメータの値を調べてみると面白いかもしれません。ブレークポイントに条件を加えると、その条件が真になるまでブレークはトリガされないため、[呼出しスタック]ウィンドウで各関数呼出しを参照することができます。
表示>ブレークポイントを選択して、[ブレークポイント]ウィンドウを開きます。[ブレークポイント]ウィンドウでブレークポイントを選択して、右クリックしてコンテキストメニューを開き、編集を選択します。ブレークポイントの編集ダイアログボックスが開きます。
スキップ数テキストボックスに「4」と入力して、[OK]をクリックします。
関数呼出しの参照
8
デバッグ>実行を選択して、ブレークポイント条件が成立するまでアプリケーションを実行します。
9
C-SPYがブレークポイントで停止したら、表示>呼出しスタックを選択して、[呼出しスタック]ウィンドウを開きます。
呼出しスタックに関数nthのインスタンスが5つ表示されています。[呼出しスタック]ウィンドウでは関数パラメータの値を参照できるので、各関数インスタンスにおけるnの値を知ることできます。
[レジスタ]ウィンドウを開き、関数インスタンスをダブルクリックして関数呼出しをトレースすると、それによってウィンドウの内容が更新される様子を参照できます。
フィボナッチ数列の出力
1
表示メニューを使用して、[ターミナルI/O]ウィンドウを開きます。
2