CORBA プログラムをデバッグする
CORBA に付属の IDE のデバッガは、CORBA クライアントプログラムおよびサーバープログラムで使用できます。この場合、次のいくつかについて注意する必要があります。
- クライアントプログラムとサーバープログラムを個別にデバッグする必要があります。
デバッガをクライアント側で開始して、サーバーへのリモートメソッド呼び出しを
トレースすることはできません。サーバー側でデバッガを起動してから、クライアントを
実行する必要があります。デバッガは、要求に応じて、実行中のサーバーを示します。
- IDE の外部で開始されたプロセスに対して、IDE デバッガを
使用することはできません。特に、実装レポジトリから開始された CORBA サーバープロセスを
デバッグすることはできません。
- すでに実行中のサーバー側プログラムをデバッグする場合は、
ネームサービスからそのプログラムをバインド解除してから、再起動する必要があります。
そうしないと、バインディングコードの実行時に例外が発生します。
- ネームサービスブラウザ (エクスプローラの「実行時」タブにある) で、ネームサービスが接続されている場合は、サーバーのノードを右クリックして、コンテキストメニューから「コンテキストのバインドを解除」を選択します。
- 接続されていない場合は、tnameserv も終了して再起動する必要があります。
シェルユーティリティ (ps と kill) またはオペレーティングシステムのタスクマネージャのどちらかを使用して tnameserv のプロセスを終了します。
以前と同じ引数 (tnameserv -ORBInitialPort 1050) を使用して、このプロセスを再起動します。
- クライアント側だけをデバッグする場合は、ネームサービスを再起動して、
実装インスタンスを再バインドする必要はありません。
ブレークポイントを設定する
ブレークポイントの設定には、標準的な IDE 手順を使用します。
たとえば、Hello World の例に示した実装クラスにブレークポイントを設定するには、
次の手順を実行します。
- エディタで HelloImpl クラスを表示します。以前に入力したコードで、for() ループを
含む行を見つけます。
- この行にテキストキャレットを置いて、CTRL+F8 を押し、ブレークポイントを
設定します。
- エクスプローラで HelloServer クラスを選択し、F5 を押してデバッガでサーバーを起動します。
以前と同様にクライアントを実行します。サーバー側の実行は、ブレークポイントで
一時停止します。他の Java オブジェクトをデバッグする場合と同様に、
トレースや、変数の監視などのデバッグ手法を自由に使用できます。
注: HotSpot 上で IDE を実行している場合は、HotSpot を無効にしてから、
クライアントを再起動する必要があります。
著作権と商標について