C/C++ プロジェクトのデバッグのチュートリアル
執筆および管理: Ann
Rice
2008 年 9 月 [リビジョン番号: V6.5--1]
このチュートリアルでは、NetBeans IDE 6.5 の C/C++ プロジェクトをデバッグするための機能の一部を学ぶことができます。
目次
要件
このチュートリアルに従うには、次のソフトウェアとリソースが必要です。
| NetBeans IDE |
version 6.5 と NetBeans C/C++ Pack |
| Java Developer Kit (JDK) |
version 6 または version 5 |
Windows プラットフォーム:
GNU C/C++ コンパイラ、make、gdb
|
www.cygwin.com
www.mingw.org
|
Solaris プラットフォーム:
GNU C/C++ コンパイラ
Sun C/C++ コンパイラ
Solaris make および gmake
gdb
|
3.4.3
5.9 (Sun Studio 12 release)
3.80
6.6 または 6.8
|
Linux プラットフォーム:
Red Hat Fedora Core:
gcc および g++
gdb
GNU Make
Ubuntu:
gcc および g++
gdb
GNU Make
|
4.1.2
6.6 または 6.8
3.81
4.1.2
6.6 または 6.8
3.81
|
Mac OS X プラットフォーム:
gcc および g++
gdb
GNU Make
Xcode バンドル |
4.0.1
6.3.50
3.80
6.5
|
必要なソフトウェアのダウンロードとインストールについては、「NetBeans IDE 6.5 のインストール」および「C/C++ サポートのインストールと設定」を参照してください。
サンプルプロジェクトの作成
NetBeans C/C++ Pack 6.5 では、gdb デバッガが使用され、プロジェクトをデバッグするための多数の機能が提供されています。Quote プロジェクトを使用して、これらの機能を確認します。まだこのプロジェクトを作成していない場合は、次の操作を実行します。
- 「ファイル」>「新規プロジェクト」を選択します。
- プロジェクトのウィザードで「サンプル」カテゴリ、「C/C++」サブカテゴリを順番に展開します。
- 「アプリケーション」サブカテゴリを選択して、「Quote」プロジェクトを選択します。「次へ」をクリックして、「完了」をクリックします。
デバッグセッションを開始することなく、いつでもコードにブレークポイントを作成したり、操作したりできます。
行ブレークポイントの作成と削除
-
Quote_1 プロジェクトの quote.cc ファイルを開きます。
- 行 173 (response = readChar("Enter disk module type: (S for single disks, R for RAID; Q - exit)", 'S'); ) の横の、「ソースエディタ」ウィンドウの左マージンをクリックすることによって行ブレークポイントを設定します。赤く強調表示されている行は、ブレークポイントが設定されていることを示します。
- ブレークポイントは、左マージン内のアイコンをクリックすることによって削除できます。
- 「ウィンドウ」>「デバッグ」>「ブレークポイント」を選択し、「ブレークポイント」ウィンドウを開きます。ウィンドウに行ブレークポイントが一覧表示されます。
関数ブレークポイントの作成
- 「デバッグ」>「新規ブレークポイント」(Ctrl+Shift+F8) を選択して「新規ブレークポイント」ダイアログを開きます。
-
「ブレークポイントの種類」ドロップダウンリストで種類を「関数」に設定します。
- 「関数名」テキストフィールドに「Customer::GetDiscount」を入力します。「閉じる」をクリックします。
- 関数ブレークポイントが設定され、「ブレークポイント」ウィンドウの一覧に追加されます。
デバッグセッションの開始
デバッグセッションを開始すると、IDE によって gbd デバッガが起動され、そのデバッガ内でアプリケーションが実行されます。デバッガウィンドウが自動的に開き、「出力」ウィンドウにデバッガの出力が出力されます。
- Quote_1 プロジェクトのプロジェクトノードを右クリックし、「デバッグ」を選択することによってプロジェクトのデバッグセッションを開始します。デバッガが起動し、アプリケーションが実行されて、「局所変数」ウィンドウ、「ウォッチポイント」ウィンドウ、および「呼び出しスタック」ウィンドウが開きます。
- 「ウィンドウ」>「デバッグ」>「セッション」を選択して「セッション」ウィンドウを開きます。開いたウィンドウにデバッグセッションが表示されます。
アプリケーションの状態の検査
- Quote_1 アプリケーションは、外部の入出力ウィンドウ上に入力を求めるメッセージを出力します。
- 「Enter customer name:」プロンプトのあとに顧客名を入力します。
- 前に設定した関数ブレークポイント位置でアプリケーションが停止します。「ウィンドウ」>「デバッグ」>「ブレークポイント」を選択して「ブレークポイント」ウィンドウを開きます。ウィンドウに、前に設定した 2 つのブレークポイントが表示されます。関数ブレークポイントは太字で表示されます。
- 「呼び出しスタック」タブをクリックします。呼び出しスタックに 3 つのフレームが表示されます。
- 「局所変数」タブをクリックして、変数が 1 つ表示されていることを確認します。展開アイコン (プラス記号を含む小さなボックス) をクリックし、構造を展開します。
- 「継続」ボタンをクリックします。GetDiscount 関数が実行され、外部の入出力ウィンドウに顧客の割引額が表示されます。そのあと、入力が求められます。
- このプロンプトに対して入力を行います。次のブレークポイント、すなわち前に設定した行ブレークポイントでプログラムが停止します。quote.cc ファイルでは、プログラムが停止した行を示すブレークポイントのアイコンの上に、緑色のプログラムカウンタの矢印が表示されます。
-
「局所変数」タブをクリックし、局所変数の一覧を確認します。
- 「呼び出しスタック」タブをクリックし、スタック内にフレームが 1 つあることを確認します。
- 「ウィンドウ」>「デバッグ」>「スレッド」を選択します。2 つのスレッドが表示された「スレッド」ウィンドウが開きます。現在のスレッドはボールドで表示されます。
- 「ウィンドウ」>「デバッグ」>「レジスタ」を選択します。「レジスタ」ウィンドウが開き、現在のレジスタの内容が表示されます。
- 「ウィンドウ」>「デバッグ」>「逆アセンブリ」を選択します。「逆アセンブリ」ウィンドウが開き、現在のソースファイルのアセンブリ命令が表示されます。
-
「継続」ボタンをクリックし、プログラムが完了するまで、外部の入出力ウィンドウのプロンプトへ入力を続けます。「Q」を入力してプログラムを終了すると、外部の入出力ウィンドウが閉じ、デバッグセッションが終了します。プログラムの実行が終了する前にデバッグセッションを終了するには、「セッション」タブでセッションを右クリックし、「完了」を選択するか、「デバッグ」>「デバッガセッションを終了」を選択します。