デバッガーのクライアント/サーバー設計を使用すると、ワークステーションで実行されるローカル側のプログラムに加えて、ネットワーク内の他のシステムで実行されるリモート側のプログラムもデバッグできます。
デバッグ・エンジン としても知られるデバッガー・サーバーは、
デバッグするプログラムと同じシステム上で実行されます。
このシステムは、
ネットワークからアクセス可能なワークステーションまたはシステムの場合もあります。
ワークステーション上で実行されるプログラムをデバッグする
場合は、ローカル・デバッグ を実行します。
ネットワーク接続によってアクセス可能なシステム上で実行されるプログラムを
デバッグする場合は、リモート・デバッグ を実行します。
リモート・デバッグを使用すると、あるシステムでアプリケーションを実行し、それをご使用のワークステーションから制御できます。
ローカル・システムは、デバッガー・ユーザー・インターフェースを実行し、
リモート・システムは、デバッグ・エンジンとプログラムの両方を実行します。
リモート側でデバッグできるようにするには、
デバッグするプログラム・ファイルが存在するリモート・マシンへアクセスする必要があります。プログラム・ファイルのコンパイルに使用するソース・ファイルは、
リモート・マシンとローカル・システムのどちらにあっても構いません。
リモート側でデバッグするときは、パーソナル・ファイアウォールをオフにする規則の構成が必要になる場合があります。
コーポレーションによっては、
オフサイト・マシンへの接続が許可されていない可能性のあるファイアウォールを使用しています。リモート・マシンへ接続するために実行できる任意のアクションがあるかどうかを判別するには、サイトの管理者にお問い合わせください。
プログラムをリモート側とローカル側のいずれでデバッグする場合も、
デバッガー・ユーザー・インターフェースはデバッグ・デーモンを使用して、
デバッグ・エンジンを listen します。
デバッグ・エンジンが始動されれば接続が確立されるので、デバッグ・アクションを進めることができます。
デバッグ・デーモンとデバッグ・エンジン
デバッグ・デーモンは、
エンジン接続の listen を開始するユーザー・インターフェースの一部です。
ローカル・デバッグ・セッションの始動時に (起動構成を使用して)、デーモンは自動的に始動します。
リモート・エンジンの始動時は、デーモンを手動で始動する必要があります。
デバッグ・エンジンの listen については、下記の関連トピックを参照してください。
Note: デバッグ・エンジンは、
オペレーティング・システムおよび言語によって異なります。
また、それらがサポートするデバッグ・アクションのタイプも異なります。
デバッグ・アクションがデバッグ・エンジンによってサポートされない場合、
そのアクションは使用不可になるか、
あるいはデバッガー・ユーザー・インターフェースに表示されません。
以下に、デバッグ・エンジンによって異なるデバッグ・アクション
およびユーザー・インターフェース・エレメントの例を示します。
- すべてのブレークポイント・タイプを作成してインストールする機能。
ブレークポイント・アクションは、現在選択されているデバッグ・ターゲットの機能に基づいて、デバッガー・ユーザー・インターフェースで使用可能になります。
- 使用可能な変数の表記、
およびデフォルト表記を設定する機能。
- エディターで使用可能な「ソース」ビュー。
- 異常終了アクション
リモート・デバッグを使用する理由
リモート・デバッグは、以下のような場合に役に立ちます。
- 別のシステムで稼働中のプログラムをデバッグすると、その振る舞いが、ユーザー自身のシステムで稼働中の場合とは異なることがあります。
リモート・デバッグ・フィーチャーを使用すると、(その他の) リモート・システム上の
このプログラムをローカル・システムからデバッグできます。
そのプログラムを実行するシステム上のユーザーは、通常どおりプログラムと対話することができます (ブレークポイント・コマンドまたはステップ・コマンドによって遅延が発生する場合を除く)。
また、ローカル・システムからも、プログラムを制御し、リモート・プログラムの内部振る舞いを監視することができます。リモート・デバッグは、ネットワークに遅延が起こる可能性があることを除けば、外見も動作もローカル・デバッグと同じです。
- グラフィックスを使用するか、グラフィカル・ユーザー・インターフェース (GUI) を持つプログラムのデバッグが必要になる場合があります。
デバッガー・ユーザー・インターフェース (UI)
をアプリケーション自身の UI から分離しておく場合は、グラフィックスを使用しているか、GUI を備えたアプリケーションをデバッグするほうが簡単です。
ユーザー (または別のユーザー) のアプリケーションとの対話は、リモート・システム上
で行われますが、ユーザーのデバッガーとの対話はローカル・システム上で行われます。
- デバッグするプログラムは、デバッガー UI が実行されないプラットフォーム用にコンパイルされている可能性があります。
リモート・デバッグ・フィーチャーを使用すると、リモート・マシン上で実行されているアプリケーション
をデバッグしているときに、ローカル・マシン上のデバッガー UI を活用できます。