デバッグの概要
アプリケーションのデバッグ:インデックス への移動
RAD Studio には、各サポートされているプラットフォームについて、統合デバッガが同梱されています。IDE では、アクティブなプロジェクトの種類に合わせて、適切なデバッガを自動的に使用します。プロジェクト内のマルチデバイス アプリケーションについてもデバッグがサポートされていて、可能な限りデバッガのユーザー インターフェイスが共通化されています。
統合デバッガを使用すると、RAD Studio アプリケーションに含まれる実行時エラーと論理エラーの両方を検出して修正できます。デバッガを使用すると、コードのステップ実行、ブレークポイントと監視式の設定、およびプログラムの各種の値のインスペクトと修正が可能になります。アプリケーションをデバッグするときは、そのデバッグ セッションを管理するのに役立つデバッグ ウィンドウを利用できます。デバッグ ウィンドウにはアプリケーションの状態に関する情報が表示されます。
デバッグ インスペクタを使用すると、配列、クラス、定数、関数、ポインタ、スカラ変数、インターフェイスなどのさまざまな型のデータを検証できます。 デバッグ インスペクタを使用するにあh、[実行|インスペクト...]をクリックします。
デバッガのビデオ デモ『Debugger(デバッガ)』(英語版)も、概要を理解するのに役立ちます。
目次
コードのステップ実行
コードをステップ実行すると、プログラムのコードを 1 行ずつ実行できます。ステップごとにプログラムの状態の検証、プログラムの出力の確認、プログラムの各種データ値の修正を行い、その後でコードの次の行の実行を継続できます。デバッガに継続を指示するまでは、コードの次の行は実行されません。
[実行]をクリックすると、[トレース実行]コマンドおよび[ステップ実行]コマンドが表示されます。どちらのコマンドも、コードの次の行を実行するようにデバッガに指示します。ただし、その行に関数呼び出しが含まれる場合、[トレース実行]はその関数を実行して、関数内部の最初の行で停止します。[ステップ実行]はその関数を実行して、関数実行後の最初の行で停止します。
評価/変更
評価/変更機能を使用すると、式を評価できます。 変数の値を変更して、値をその変数に挿入することもできます。 評価/変更は、使用中の言語に合わせてカスタマイズされています。
- C++ プロジェクトでは、[評価/変更]ダイアログは C++ の式だけを受け付けます。
- Delphi プロジェクトでは、[評価/変更]ダイアログは Delphi の式だけを受け付けます。
ブレークポイント
ブレークポイントは、プログラム内の特定の時点で、または特定の条件が発生した場合に、プログラムの実行を一時停止します。それからデバッガを使用して、プログラムの状態を表示したり、コードを一度に 1 行または 1 マシン命令ずつステップ実行またはトレース実行します。デバッガは、次の 4 種類のブレークポイントをサポートします。
- ソース ブレークポイントは、ソース コードの特定の場所で実行を一時停止します。
- アドレス ブレークポイントは、特定のメモリ アドレスで実行を一時停止します。
- データ ブレークポイントは、メモリの特定のアドレス変更時に実行を停止できるようにします。データ ブレークポイントは、デバッグ セッションが終了すると自動的に無効になります。これは、変数のアドレスが 1 つのデバッグ セッションから別のセッションに変わるときに変更されるためです。後続のデバッグ セッションでデータ ブレークポイントを再利用するには、デバッグ セッションの開始後にデータ ブレークポイントを再度有効にする必要があります。
- モジュール読み込みブレークポイントは、特定のモジュール読み込みの発生時に実行を一時停止します。
ブレークポイントを作成、変更、維持する詳細は、「ブレークポイントを設定し変更する」を参照してください。
監視式
監視式を使用すると、コードをステップ実行またはトレース実行する場合に、プログラムの変数または式の値を追跡できます。プログラムをステップ実行して、プログラムが監視式に含まれる変数を更新すると、監視式の値が変更されます。
[監視式一覧]ウィンドウで監視項目を監視することができます。
デバッグ ウィンドウ
プログラムをデバッグする場合に役立つ以下のデバッグ ウィンドウを利用できます。 デフォルトでは、ほとんどのウィンドウは、デバッグ セッションを開始すると自動的に表示されます。 また、[表示|デバッグ ウィンドウ]を選択すると、個別にウィンドウを表示させることもできます。
各ウィンドウには、右クリックのコンテキスト メニューが 1 つ以上あります。各ウィンドウで F1
キーからアクセスできるヘルプには、ウィンドウとコンテキスト メニューについての詳細情報があります。
デバッグ ウィンドウ | 説明 |
---|---|
コード エディタまたは[CPU]ウィンドウで現在設定されているブレークポイントをすべて表示します。 | |
現在の関数呼び出しの順序を表示します。 | |
実行ポイントのスコープに基づいて監視式の現在の値を表示します。 | |
現在の関数のローカル変数を表示します。プログラムの実行に従って、プログラムが変数の値を更新していく状況を監視できます。 | |
デバッガに制御されているプロセスと、各プロセスが現在読み込んでいるモジュールを表示します。また、アプリケーションで使用されている名前空間、クラス、およびメソッドを階層構造で表示します。 | |
デバッグ中の各アプリケーションで実行されている、すべてのプロセスと実行スレッドの状態を表示します。 これは、マルチスレッド アプリケーションをデバッグするときに役に立ちます。 Windows Vista の場合、[スレッドの状態]には、スレッド障害とデッドロックを表示する[待機チェーン]列があります。 | |
プロセス制御、ブレークポイント、出力、スレッド、およびモジュールに関連するメッセージを表示します。 | |
ソース コードの各行のアセンブリ命令や特定のレジスタの内容を含む、プログラムの低レベルの状態を表示します。 | |
CPU の浮動小数点演算装置と SSE レジスタの内容を表示します。 |
デバッグ時のデスクトップの設定
デバッグ時のデスクトップとは、アプリケーションをデバッグ モード(デフォルトのキー割り当てでは F9
を押す)で実行しているときに IDE で使用されるレイアウトのことです。デバッグ時のデスクトップにはデフォルトがありますが、その代わりに、保存されている任意のデスクトップをデバッグ時のデスクトップとして選択することもできます。
デバッグ時のデスクトップを設定
- 次のいずれかを選択します。
- [表示|デスクトップ|デバッグ時に使う]
- [デスクトップ]ツールバーの
- [デバッグ時のデスクトップの選択]ダイアログ ボックスで、[デバッグ時に使うデスクトップ]の下矢印をクリックし、デバッグ時のデスクトップにするレイアウトを選択します。
- [OK]をクリックします。
リモート デバッグ
リモート デバッグでは、リモート コンピュータ上で動作するアプリケーションをデバッグできます。コンピュータをリモート コンピュータに TCP/IP 接続する必要があります。
現在利用できるのは、次の 2 種類のリモート デバッグ方法です。
- 新しいリモート デバッグ方法はマルチデバイス デバッグにも用いられます。
- 古い形式のリモート デバッグ方法では、リモート マシンにリモート デバッガをインストールする必要がありました。必要なアプリケーション ファイルを作成してリモート コンピュータにコピーしたら、そのリモート コンピュータに接続しデバッグを開始できます。
- メモ: 古い形式のデバッグ方法は、マルチデバイス アプリケーションには適用されません。
マルチデバイス環境でのデバッグ
マルチデバイス環境でのデバッグに関係があるのは、ネイティブの 32 ビット Windows ではないターゲット プラットフォームを使用する場合です。 デバッガとのやり取りは、Windows デバッグと同様、仮想的にマルチデバイス デバッグと同じになります。
- OS X プラットフォームおよび iOS プラットフォームの場合には、ターゲット マシンにプラットフォーム アシスタントをインストールおよび実行し、開発用システムで作業用接続プロファイルを作成します。
- Android アプリケーションの場合には、プラットフォーム アシスタントや接続プロファイルは使用しません。Android デバイス用 USB ドライバをダウンロードし、USB デバッグを有効にして、RAD Studio に Android SDK を追加する必要があります。
詳細については、「マルチデバイス アプリケーションのデバッグ」を参照してください。