C/C++プロジェクトのデバッグのチュートリアル

この短いチュートリアルでは、NetBeans IDEのC/C++プロジェクトをデバッグするための機能の一部を学ぶことができます。

内容

このページの内容は、NetBeans IDE 7.4に適用されます
要件
サンプル・プロジェクトの作成
ブレークポイントの作成
デバッグ・セッションの開始
アプリケーションの状態の検査

要件

このチュートリアルに従うには、次のソフトウェアとリソースが必要です。

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE バージョン7.4とNetBeans C/C++プラグイン・モジュール
Java Developer Kit (JDK) バージョン7

必要なソフトウェアのダウンロードとインストールについては、NetBeans IDEのインストール手順およびC/C++/Fortran向けのNetBeans IDEの構成を参照してください。

サンプル・プロジェクトの作成

C/C++を使用するNetBeans IDEでは、gdbデバッガが使用され、プロジェクトをデバッグするための多数の機能が提供されています。Quoteプロジェクトを使用して、これらの機能を確認します。まだこのプロジェクトを作成していない場合は、次の操作を実行します。

  1. 「ファイル」>「新規プロジェクト」を選択します。
  2. プロジェクトのウィザードで「サンプル」カテゴリ、「C/C++」サブカテゴリを順番に展開します。
  3. 「アプリケーション」サブカテゴリを選択して、「Quote」プロジェクトを選択します。「次」をクリックして、「終了」をクリックします。

ブレークポイントの作成

デバッグ・セッションを開始することなく、いつでもコードにブレークポイントを作成したり、操作したりできます。

行ブレークポイントの作成と除去

  1. Quote_1プロジェクトのquote.ccファイルを開きます。
  2. 行171 (response=readChar("Enter disk module type: (S for single disks, R for RAID; Q - exit)", 'S');)の横の、「ソース・エディタ」ウィンドウの左マージンをクリックすることによって行ブレークポイントを設定します。赤く強調表示されている行は、ブレークポイントが設定されていることを示します。
    「ソース・エディタ」ウィンドウのスクリーンショット
  3. ブレークポイントは、左マージン内のアイコンをクリックすることによって除去できます。
  4. 「ウィンドウ」>「デバッグ」>「ブレークポイント」を選択し、「ブレークポイント」ウィンドウを開きます。行ブレークポイントがC/C++ノードの下に一覧表示されます。
    「ブレークポイント」ウィンドウのスクリーンショット
  5. 行ブレークポイントを表示するには、C/C++ノードを拡張します。
    「ブレークポイント」ウィンドウのスクリーンショット

関数ブレークポイントの作成

  1. 「ブレークポイント」ウィンドウの左マージンで「新規ブレークポイントを作成」ボタンをクリックするか、「デバッグ」>「新規ブレークポイント」([Ctrl]+[Shift]+[F8])を選択して「新規ブレークポイント」ダイアログ・ボックスを開きます。
  2. 「デバッガ・タイプ」リストで、「ネイティブ」を選択します。
  3. 「ブレークポイント・タイプ」リストで、「関数」を選択します。
  4. 「関数名」テキスト・フィールドに「Customer::GetDiscount」を入力します。「OK」をクリックします。
    「新規ブレークポイント」ダイアログ・ボックスのスクリーンショット
  5. 関数ブレークポイントが設定され、「ブレークポイント」ウィンドウの一覧に追加されます。
    「ブレークポイント」ウィンドウのスクリーンショット
  6. 左マージンで「ブレークポイント・グループを選択」ボタンをクリックしてブレークポイントを各種グループに編成し、「タイプ」を選択します。
    「ブレークポイント」ウィンドウのグループ分けカテゴリのスクリーンショット
  7. ブレークポイントを表示するには、「ファイル:行」および「関数」グループを拡張します。
    タイプ別に編成されたブレークポイントのスクリーンショット

デバッグ・セッションの開始

デバッグ・セッションを開始すると、IDEによってgdbデバッガが起動され、そのデバッガ内でアプリケーションが実行されます。デバッガ・ウィンドウおよびデバッガ・ツールバーが自動的に開き、「出力」ウィンドウにデバッガの出力が出力されます。

  1. 「プロジェクトをデバッグ」ボタンデバッグ・ボタンのスクリーンショットをクリックしてQuote_1プロジェクトのデバッグ・セッションを開始するか、「デバッグ」>「プロジェクトをデバッグ」を選択します。
    デバッガが起動し、アプリケーションが実行されます。デバッグ・ツールバーが表示されます。
    デバッガ・ツールバー・ボタンのスクリーンショット
  2. 「ウィンドウ」>「デバッグ」>「セッション」を選択して「セッション」ウィンドウを開きます。
    開いたウィンドウにデバッグ・セッションが表示されます。

アプリケーションの状態の検査

  1. Quote_1アプリケーションは、「出力」(デバッグ)ウィンドウ上に入力を求めるメッセージを出力します。
  2. 「Enter customer name:」プロンプトの後に顧客名を入力します。

    アプリケーションは、前に設定したCustomer::GetDiscount関数ブレークポイントで停止し、customer.ccファイルがエディタ内の関数が呼び出された行で開かれます。「ブレークポイント」ウィンドウに、前に設定した2つのブレークポイントが表示されます。関数ブレークポイントのブレークポイント・アイコンの上に、緑色のプログラム・カウンタの矢印が表示されます。
    「ブレークポイント」タブのスクリーンショット

  3. 「呼出しスタック」ウィンドウのタブをクリックするか、「ウィンドウ」>「デバッグ」>「呼出しスタック」を選択します。コール・スタックに3つのフレームが表示されます。
    「コール・スタック」タブのスクリーンショット
  4. 「変数」ウィンドウを開いて、変数が1つ表示されていることを確認します。
  5. 展開アイコンをクリックし、構造を展開します。
    「変数」タブのスクリーンショット
  6. ツールバーにある「続行」ボタンをクリックします。
    GetDiscount関数が実行され、「出力」(デバッグ)ウィンドウに顧客の割引額が表示されます。その後、入力が求められます。
  7. このプロンプトに対して入力を行います。

    次のブレークポイント、すなわち前に設定した行ブレークポイントでプログラムが停止します。quote.ccファイルでは、プログラムが停止した行を示すブレークポイントのアイコンの上に、緑色のプログラム・カウンタの矢印が表示されます。

    「ソース・エディタ」のスクリーンショット

  8. 「変数」タブをクリックし、変数の一覧を確認します。
    「ローカル変数」タブのスクリーンショット
  9. 「コール・スタック」タブをクリックし、スタック内にフレームが1つあることを確認します。
  10. 「ウィンドウ」>「デバッグ」>「レジスタ」を選択します。
    「レジスタ」ウィンドウが開き、現在のレジスタの内容が表示されます。
    「レジスタ」ウィンドウのスクリーンショット
  11. 「ウィンドウ」>「デバッグ」>「逆アセンブリ」を選択します。
    「逆アセンブリ」ウィンドウが開き、現在のソース・ファイルのアセンブリ命令が表示されます。
    逆アセンブリ・ウィンドウのスクリーンショット
  12. ツールバーにある「続行」ボタンをクリックし、プログラムが完了するまで、「出力」ウィンドウのプロンプトに対応して入力を続けます。
  13. [Enter]を押してプログラムを終了するとデバッグ・セッションが終了します。プログラムの実行が完了する前にデバッグ・セッションを終了するには、ツールバーで「デバッガ・セッションを終了」ボタンをクリックするか、「デバッグ」>「デバッガ・セッションを終了」を選択します。

関連項目

NetBeans IDEでのC/C++/Fortranを使用した開発に関する詳細な記事は、C/C++の学習を参照してください。

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo