[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

# 9 デバッグ・セッションの開始と終了

本章では次の方法について説明します。

- デバッガの起動(第9.1節)

- プログラムの実行終了後のデバッグの続行(第9.2節)

- 現在のデバッグ・セッションからの同一プログラムの再実行( 第9.3節)

- 現在のデバッグ・セッションからの別のプログラムの実行(第9.4節)

- プログラムの実行に対する割り込みおよびデバッガ動作の強制終了( 第9.5節)

- デバッグ・セッションの終了(第9.6 節)

- 特定の用途の追加オプションによるデバッガの起動(第9.7節)

# 9.1 保持デバッガの起動

この節では，DCLレベル($)からデバッガを起動して，ユーザのプログラムをデバッガの制御下に置く一般的な方法について説明します。 オプションの起動方法については， 第9.7 節を参照してください。

ここで説明している方法に従って，保持デバッガでデバッガを起動すると，Rerun ( 第9.3節を参照)およびRun (第9.4節を参照)のそれぞれの機能を使用できるようになります。

デバッガを起動してプログラムをデバッガの制御下に置くには，次のようにします。

1. 第1.2節で説明したとおりにプログラムをコンパイルおよびリンクしてあることを確認する。

2. デバッグしようとしているプログラムの種類に応じた適切な( 省略時またはマルチプロセスの)デバッグ構成となっているかを確認する( 第1.9節を参照)。1つのプロセス内でのみ実行する典型的なプログラムの場合は， 省略時の構成を使用する。

3. 次のコマンド行を入力する。

            $ DEBUG/KEEP

   省略時の設定では，図 9-1 のようにデバッガが起動します。 プログラムをデバッガの制御下に置く( 手順4)までメイン・ウィンドウは空のままです。デバッガの起動時にはユーザ定義初期化ファイルが実行されます( 第13.2 節を参照)。

   ### 図 9-1 起動時のデバッガ

4. 次のどちらかの方法を使用して，プログラムをデバッガの制御下に置く

   - 指定のイメージの実行(最も一般的な方法)

     1. メイン・ウィンドウの「File」メニューから「Run Image...」を選択する。「Run Image」ダイアログ・ボックスが現れ， ユーザのカレント・ディレクトリにある実行可能なイメージの一覧が表示される( 図 9-2を参照)。

     2. デバッグするイメージの名前をクリックして選択する。 「Image:」フィールドにそのイメージ名が表示される。

     3. プログラムに渡す引数がある場合は，「Arguments:」フィールドに入力する。 デバッガは文字列の解析時に引用符を取り除くので， 引用符付きの文字列の場合は二重引用符を追加しなければならない。

     4. 「OK」をクリックする。

     ### 図 9-2 イメージの指定によるプログラムの実行

   - DCLコマンドまたはフォーリン・コマンドのシンボルの指定によるイメージの実行

     1. メイン・ウィンドウの「File」メニューから「Run Foreign Command... 」を選択する。「Run Foreign Command...」ダイアログ・ボックスが表示される(図 9-3 を参照)。

     2. 「Foreign Command:」フィールドにコマンドを入力する。 このようなシンボルにより，ディレクトリ選択およびファイル選択のプロセスでショートカットを使用できるようになる。 図2-3に表示されているフォーリン・コマンドX1は，すでに次のように定義されている。

                 $X1 :== RUN MYDISK:[MYDIR.MYSUBDIR]EIGHTQUEENS.EXE

     3. コマンドに付けて渡す引数を「Arguments:」フィールドに入力する。

     4. 「OK」をクリックする。

### 図 9-3 コマンド・シンボルの指定によるプログラムの実行

デバッガが，プログラムを制御できるようになると，デバッガは次の動作を行います。

- 図 9-4に示すように， メイン・ウィンドウにプログラムのソース・コードを表示する。

- メイン・プログラムの先頭で実行を中断する。ソース・コードの左にある現在位置ポインタが指している行は， 次に実行されるコードを表す。

### 図 9-4 起動時のソース・ディスプレイ

コマンド・ビューに表示されたメッセージは，このデバッグ・セッションがC プログラム用に初期化されており，ソース・モジュールの名前がEIGHTQUEENS であることを示しています。

ある種のプログラムでは，メイン・プログラムの前に，初期化コードの先頭でプログラムの実行が中断されるよう一時的なブレークポイントが設定され， 次のメッセージが表示されます。

         Type GO to reach MAIN program
         No source line for address: nnnnnnnn

いくつかのプログラム(たとえばAda)では，完全シンボル情報を使用して， ブレークポイントで初期化コードをデバッグすることができます。 初期化を行うと，言語別のデバッガ・パラメータが設定されます。これらのパラメータは， デバッガが名前や式を解析する方法，デバッガが出力する形式などを制御します。 これにより，第10 章の方法を使用してプログラムをデバッグできるようになります。

デバッガの制御下でのプログラムの実行については，次の制限事項に注意してください。

- 実行中のプログラムにデバッガを接続するために，この節で示した手順を使用することはできない( 第9.7.2 項を参照)。

- DECnetリンクを通じて，デバッガの制御下でプログラムを実行することはできない。 デバッグするイメージとデバッガは両方とも同じノードになければならない。

存在しないプログラムを実行しようとしたり，存在するプログラムの名前の綴りを誤って入力すると， 次のエラー・メッセージがコマンド・ビューではなく，DECterm ウィンドウに表示されます。

         %DCL-W-ACTIMAGE, error activating image
         -CLI-E-IMAGEFNF, image file not found

この問題を回避するには，「File Selection」ポップアップの「Select an application to run」ボックスに正しいファイル指定が指定されているかどうか確認してください。

# 9.2 プログラムの実行の終了

1つのデバッグ・セッションの中でプログラムの実行が正常に終了すると， 次のメッセージが発行されます。

このときユーザには次のオプションが与えられます。

- 同じデバッグ・セッションからプログラムを再実行することができる( 第9.3節を参照)。

- 同じデバッグ・セッションから別のプログラムを実行することができる( 第9.4節を参照)。

- デバッグ・セッションを終了することができる(第9.6節を参照)。

# 9.3 現在のデバッグ・セッションからの同一プログラムの再実行

保持デバッガでデバッガを実行する場合(第9.1節を参照)， デバッグ・セッションを実行している間ならいつでも， 現在デバッガによって制御されているプログラムを再実行できます。

プログラムを再実行するには，次の手順に従ってください。

1. メイン・ウィンドウ「File」メニューから「Rerun Same...」を選択する。 「Rerun」ダイアログ・ボックスが表示される(図 9-5 を参照)。

2. プログラムに渡す適当な引数が必要な場合は，「Arguments:」フィールドに入力する。 デバッガは文字列の解析時に引用符を取り除くので， 引用符付きの文字列の場合は二重引用符を追加しなければならない。

3. 以前に設定したか，有効または無効にしたブレークポイント， トレースポイント，または静的ウォッチポイントの現在の状態を保存するか保存しないかを選択する( 第10.4 節および第10.5.5項を参照)。 非静的ウォッチポイントが保存されるか保存されないかは， ウォッチされる変数の有効範囲に応じて， 実行の再開地点のメイン・プログラム・ユニットとの関連で決まる。

4. 「OK」をクリックする。

### 図 9-5 同一プログラムの再実行

プログラムを再実行するときの初期状態は，保存したブレークポイント， トレースポイント，静的ウォッチポイントを除き，第9.1節の説明に従ってプログラムをデバッガの制御下に置いた場合の初期状態と同じです。 ソース表示と現在位置ポインタは適宜に更新されます。

プログラムを再実行する場合，デバッガは，現在デバッガの制御下にあるイメージと同じバージョンのイメージを使用します。 同一のデバッグ・ セッションからそのプログラムの別のバージョン(または他のプログラム) をデバッグするには，メイン・ウィンドウの「File」メニューから「Run Image... 」または「Run Foreign Command..」を選択してください( 第9.1節を参照)。

# 9.4 現在のデバッグ・セッションからの別のプログラムの実行

最初に第9.1節の説明に従ってデバッガを起動した場合は，1 つのデバッグ・セッションの中でいつでも別のプログラムをデバッガの制御下に置くことができます。 プログラムをデバッガの制御下に置くには， 第9.1節の手順に従ってください。 その手順を使用するときの制限事項にも注意してください。

# 9.5 プログラムの実行に対する割り込みおよびデバッガ動作の強制終了

デバッグ・セッション中にプログラムの実行に割り込みをかけるには， プッシュ・ボタン・ビューの「Stop」ボタンをクリックします(図 8-3 を参照)。これは，たとえばプログラムが無限ループに陥った場合に役立ちます。

進行中のデバッガ動作を強制終了するには，「Stop」をクリックします。 これは，たとえばデバッガが長いデータ・ストリームを表示している場合に役立ちます。

「Stop」をクリックしてもデバッグ・セッションは終了しません。プログラムが動作していないとき， またはデバッガがコマンドを実行していないときは「Stop 」をクリックしても何も起こりません。

# 9.6 デバッグ・セッションの終了

デバッグ・セッションを終えるためデバッガを終了するには，メイン・ウィンドウの「File 」メニューから「Exit Debugger」を選択するか，プロンプトでEXIT を入力します(確認ダイアログを回避する場合)。これでシステム・ レベルに制御が戻ります。

現在のデバッグ・セッションからプログラムを再実行する方法については， 第9.3節を参照してください。

現在のデバッグ・セッションから別のプログラムを実行する方法については， 第9.4節を参照してください。

# 9.7 デバッガを起動するときの追加オプション

DCLレベル($)からデバッガを起動するときは，第9.1節で説明した起動の手順に加え， 次のオプションを使用することができます。

- デバッグするプログラムをDCLのRUNコマンドで実行することによって， デバッガを起動する(第9.7.1 項を参照)。

- Ctrl/Yを押して，実行中のプログラムに割り込みをかけてから，DCL のDEBUGコマンドを使用してデバッガを起動する(第9.7.2項を参照)。

- 1つのプロセス内で実行されるプログラムをデバッグするために， 省略時のデバッグ構成を設定する。または，複数のプロセス内で実行されるプログラムをデバッグするために， マルチプロセス・デバッグ構成を設定する( 第17章を参照)。

- 次を行うために，デバッガの省略時のインタフェース(DECwindows Motif インタフェース)を無効にする(第9.7.3項を参照)。

  - 別のワークステーション上でDECwindows Motifインタフェースを表示する。

  - コマンド・インタフェースをプログラムの入出力(I/O)とともにDECterm Motif ウィンドウに表示する。

  - コマンド・インタフェースとプログラムの入出力(I/O)を別々のDECterm ウィンドウに表示する。

どの場合もデバッガの起動前に，第1.2節の説明に従ってプログラム・ モジュールをコンパイルおよびリンクしたことと， および第1.9節の説明にしたがって適切なデバッグ構成をしたことを確認してください。

## 9.7.1 プログラムの実行によるデバッガの起動

DCLコマンドのRUN program-imageを入力すると，1つの手順で， デバッガを起動してプログラムをデバッガの制御下に置くことができます。 そのプログラムは/DEBUG修飾子を使用してコンパイルとリンクが行われているものと想定されます。

しかし，この方法で起動した場合は，第9.3 節と第9.4節でそれぞれ説明した再実行機能と実行機能を使用することはできません。 デバッガの制御下で同一プログラムを再実行するか別のプログラムを実行するには， いったんデバッガを終了してからもう一度起動する必要があります。

プログラムの実行によってデバッガを起動するには，DCLコマンドのRUN program-imageを入力してデバッガを起動します。 次に例を示します。

         $ RUN EIGHTQUEENS

省略時の設定では，デバッガが図 9-4 のように起動され，ユーザ定義初期化ファイルが実行され， メイン・ウィンドウにプログラムのソース・コードが表示されます。 現在位置ポインタは，メイン・プログラムの先頭で実行を一時停止していることを示しています。 そして，メイン・プログラム・ユニットのソース言語に合わせて言語固有のパラメータが設定されます。

デバッガの起動についての詳しい説明は，第9.1節を参照してください。

## 9.7.2 実行中のプログラムの割り込み後のデバッガの起動

ユーザは実行中のプログラムを自由にデバッガの制御下に置くことができます。 これは，プログラムが無限ループに陥っていると思われるときや， 出力が誤っていることに気付いた場合などに役立ちます。

プログラムをデバッガの制御下に置くには，次の手順に従ってください。

1. デバッガの制御の外でプログラムを実行するために，DCLコマンドのRUN/NODEBUG program-imageを入力する。

2. 実行中のプログラムに割り込みをかけるためにCtrl/Yを押す。 DCLコマンド・インタプリタに制御が渡される。

3. デバッガを起動するために，DCLコマンドのDEBUGを入力する。

次に例を示します。

         $ RUN/NODEBUG EIGHTQUEENS
            .
            .
            .
         <Ctrl/Y>

         Interrupt
         $ DEBUG
         [starts debugger]

デバッガの起動時には，メイン・ウィンドウが表示され，ユーザ定義初期化ファイルが実行されます。 また，実行に割り込みがかけられたモジュールのソース言語に合わせて， 言語固有のパラメータが設定されます。

どこで実行に割り込みがかけられたかを確認するには，次のようにします。

1. メイン・ウィンドウを見る。

2. コマンド入力プロンプトにSET MODULES/CALLSコマンドを入力する。

3. ソース・ウィンドウに「Call Stack」メニューを表示して， 呼び出しスタック上のルーチン呼び出しの並びを確認する。レベル0 のルーチンが，現在実行を一時停止されているルーチンである(第10.3.1項を参照)。

この方法でデバッガを起動した場合は，第9.3 節と第9.4節でそれぞれ説明した再実行機能と実行機能を使用することはできません。 デバッガの制御下で同一プログラムを再実行するか別のプログラムを実行するには， いったんデバッガを終了してからもう一度起動する必要があります。

デバッガの起動についての詳しい説明は，第9.1節を参照してください。

## 9.7.3 デバッガの省略時のインタフェースの変更

ワークステーションでDECwindows Motifを稼働している場合，省略時の設定では， デバッガはDECwindows Motifインタフェースで起動されます。 DECwindows Motifインタフェースは，DECwindows Motifのアプリケーション全体に通用する論理名DECW$DISPLAY で指定されたワークステーションに表示されます。

ここでは，次の操作を行うためにデバッガの省略時のDECwindows Motifインタフェースを無効にする方法について説明します。

- デバッガのDECwindows Motifインタフェースを別のワークステーション上に表示する。

- デバッガのコマンド・インタフェースをプログラムの入出力(I/O) とともにDECtermウィンドウに表示する。

- デバッガのコマンド・インタフェースとプログラムの入出力(I/O) を別々のDECtermウィンドウに表示する。

論理名DBG$DECW$DISPLAYによって，デバッガの省略時のインタフェースを変更することができます。 ほとんどの場合，省略時設定が適正なのでDBG$DECW$DISPLAY を定義する必要はありません。

論理名DBG$DECW$DISPLAYと論理名DECW$DISPLAYについては，第9.7.3.4項を参照してください。

### 9.7.3.1 別のワークステーション上でのデバッガのDECwindows Motif インタフェースの表示

画面の大部分を使用するDECwindows Motifアプリケーションをデバッグする場合( または，Motifアプリケーションのポップアップをデバッグする場合) ，1台のワークステーションでプログラムを実行し，別のワークステーションにデバッガのDECwindows Motif インタフェースを表示すると便利です。 その場合は次の手順に従ってください。

1. プログラムを実行しようとしているDECtermウィンドウに，次の構文で論理定義を入力する。

            DEFINE/JOB DBG$DECW$DISPLAY workstation_pathname

   workstation_pathnameは，デバッガのDECwindows Motifインタフェースを表示するワークステーションのパス名です。 このパス名の構文については， 『OpenVMS DCLディクショナリ』のSET DISPLAYコマンドの説明を参照してください。

   なるべくジョブ定義を使用してください。プロセス定義を使用する場合は，CONFINE 属性を与えないでください。

2. 論理定義を入力したDECtermウィンドウからプログラムを実行する。DBG$DECW$DISPLAY で指定したワークステーション上にデバッガのDECwindows Motif インタフェースが表示されます。アプリケーションのウィンドウ化インタフェースは， 通常それが表示されるワークステーションに表示されます。

### 9.7.3.2 DECtermウィンドウへのデバッガのコマンド・ インタフェースの表示

デバッガのコマンド・インタフェースをプログラムの入出力(I/O)とともにDECterm ウィンドウの中に表示するには，次の手順に従ってください。

1. デバッガを起動しようとしているDECtermウィンドウに次の定義を入力する。

            $ DEFINE/JOB DBG$DECW$DISPLAY " "

   二重引用符の間には1つ以上のスペース文字を指定することができます。 論理名にはなるべくジョブ定義を使用してください。プロセス定義を使用する場合は，CONFINE 属性を与えないでください。

2. 通常の方法で，そのDECtermウィンドウからデバッガを起動する( 第9.1節を参照)。

   デバッガのコマンド・インタフェースが同一ウィンドウに表示されます。

次に例を示します。

         $ DEFINE/JOB DBG$DECW$DISPLAY " "
         $ DEBUG/KEEP

                    Debugger Banner and Version Number

         DBG>

これで，第9.1節で説明した方法でプログラムをデバッガの制御下に置くことができます。

### 9.7.3.3 別のDECtermウィンドウへのコマンド・ インタフェースとプログラムの入出力(I/O)の個別表示

ここでは，デバッガを起動するDECtermウィンドウ以外のDECtermウィンドウに， デバッガのコマンド・インタフェースを表示する方法について説明します。 画面用プログラムのデバッグにコマンド・インタフェースを使用する場合は， この別ウィンドウが便利です。

- プログラムの入出力(I/O) (I/O)はデバッガを起動したウィンドウに表示される。

- 画面モードの表示を含め，デバッガの入出力(I/O)は別ウィンドウに表示される。

DECwindows MotifではなくVWSが稼働しているワークステーションのDBG> プロンプトでSET MODE SEPARATEコマンドを入力しても同じ効果が得られます。DECterm ウィンドウの中ではSET MODE SEPARATEコマンドは無効です。

「Debugger」という別のデバッガ・ウィンドウにデバッガのコマンド・インタフェースを表示する方法を次の例に示します。

1. 例 9-1のように， コマンド・ プロシージャSEPARATE_WINDOW.COMを作成する。

   ### 例 9-1 コマンド・プロシージャSEPARATE_ WINDOW.COM

       $ ! DECtermウィンドウからのSET MODE SEPARATEの効果をシミュレートする。
       $ !
       $ CREATE/TERMINAL/NOPROCESS -
          /WINDOW_ATTRIBUTES=(TITLE="Debugger",-
                  ICON_NAME="Debugger",ROWS=40)-
          /DEFINE_LOGICAL=(TABLE=LNM$JOB,DBG$INPUT,DBG$OUTPUT)
       $ ALLOCATE DBG$OUTPUT
       $ EXIT
       $ !
       $ ! CREATE/TERMINAL/NOPROCESSコマンドは，プロセスなしで
       $ ! DECtermウィンドウを作成する。
       $ !
       $ ! /WINDOW_ATTRIBUTES修飾子は，ウィンドウの
       $ ! 名前(Debugger)，アイコン名(Debugger)，および
       $ ! ウィンドウの行数(40)を指定する。
       $ !
       $ ! /DEFINE_LOGICAL修飾子は，ウィンドウに論理名DBG$INPUTと
       $ ! 論理名DBG$OUTPUTを割り当てるので，
       $ ! ウィンドウがデバッガの入出力 (I/O) 装置になる。
       $ !
       $ ! ALLOCATE DBG$OUTPUTコマンドは，デバッグ・セッションの
       $ ! 終了時に別ウィンドウをオープンしたまま残す。

2. 次のようにコマンド・プロシージャを実行する。

            $ @SEPARATE_WINDOW
            %DCL-I-ALLOC, _MYNODE$TWA8: allocated

   SEPARATE_WINDOW.COMで指定されている属性の新しいDECtermウィンドウが作成される。

3. デバッガのコマンド・インタフェースを表示するために，第9.7.3.2項の手順を実行する。 新しいウィンドウにコマンド・インタフェースが表示される。

4. これでデバッガのウィンドウにデバッガ・コマンドを入力することができる。 プログラムの入出力(I/O)は，デバッガを起動したDECterm ウィンドウに表示される。

5. EXITコマンドでデバッグ・セッションを終了すると，プログラムの入出力(I/O) ウィンドウ内のDCLプロンプトに制御が戻るが，デバッガのウィンドウは開いたまま残る。

6. 第9.7.3.2項のようにプログラムの入出力(I/O) と同じウィンドウにデバッガのコマンド・インタフェースを表示するには， 次のコマンドを入力する。

            $ DEASSIGN/JOB DBG$INPUT
            $ DEASSIGN/JOB DBG$OUTPUT

   ユーザが明示的に閉じるまで，デバッガのウィンドウは開いたままである。

### 9.7.3.4 DBG$DECW$DISPLAYとDECW$DISPLAY の説明

ワークステーションでDECwindows Motifが稼働している場合，省略時の設定では， デバッガはDECwindows Motifインタフェースで起動されます。 DECwindows Motifインタフェースは，DECwindows Motifのアプリケーション全体に通用する論理名DECW$DISPLAY で指定されたワークステーションに表示されます。DECW$DISPLAY は，FileViewまたはDECtermによってジョブ・ テーブルの中に定義されます。DECW$DISPLAYはワークステーション用の表示装置を指します。

DECW$DISPLAYについての詳しい説明は，『OpenVMS DCLディクショナリ』のDCLコマンドのSET DISPLAYおよびSHOW DISPLAYの説明を参照してください。

論理名DBG$DECW$DISPLAYは，DECW$DISPLAYと等価なデバッガ固有の論理名です。DBG$DECW$DISPLAY は，デバッガ固有の論理名であるDBG$INPUT とDBG$OUTPUTに相当します。これらの論理名を使用すると，それぞれSYS$INPUT とSYS$OUTPUTに割り当てられた値を変更して，デバッガの入出力(I/O) が表示される装置を指定することができます。

デバッガの省略時のユーザ・インタフェースが使用されるのは，DBG$DECW$DISP LAY が未定義である場合，または変換されたDBG$DECW$DISPLAY がDECW$DISPLAYと同じである場合です。省略時の設定ではDBG$DECW$DISPLAY は未定義です。

DECW$DISPLAYとDBG$DECW$DISPLAYの論理定義を使用している場合，デバッガは次のアルゴリズムに従って動作します。

1. 論理名DBG$DECW$DISPLAYが定義されているときはそれを使用する。 定義されていないときはDECW$DISPLAY論理名を使用する。

2. 論理名を変換する。論理名の値がNULLでない場合(文字列にスペース以外の文字が含まれている場合) は，指定されているワークステーション上にDECwindo ws Motif インタフェースを表示する。論理名の値がNULL である場合(文字列にスペースだけしか含まれていない場合) は，DECtermウィンドウの中にコマンド・インタフェースを表示する。

OpenVMSデバッガがDECwindows Motifインタフェースで起動するように設定するときは， 次のいずれかのコマンドを使用します。

         $DEFINE DBG$DECW$DISPLAY "WSNAME::0"

         $SET DISPLAY/CREATE/NODE=WSNAME

ただしWSNAMEは，ワークステーションのノード名になります。

# 9.8 Motifデバッグ・クライアントの起動

OpenVMSデバッガ・バージョン7.2の機能であるクライアント/サーバ・インタフェースを使用すると，OpenVMS(VAX またはAlpha CPU)上で実行されているプログラムを， 同じシステム上，または別のシステム上で実行されているクライアント・ インタフェースからデバッグすることができます。

デバッガのクライアント/サーバでは，保持デバッガの機能をそのまま使用することができますが， デバッガは，デバッグ・サーバとデバッグ・クライアントという2 つの構成要素に分割されています。デバッグ・サーバはOpenVMS システム上で実行され，ユーザ・インタフェースを持たない保持デバッガに相当します。 一方，デバッグ・クライアントはユーザ・インタフェースを持ち，DECwindows Motif を使用するOpenVMSシステム上，またはMicrosoft Windows 95 かMicrosoft Windows NTを使用するPC上で実行されます。

## 9.8.1 ソフトウェアの必要条件

デバッグ・サーバの実行には，OpenVMSバージョン7.2以降が必要です。

デバッグ・クライアントは，次のいずれかのオペレーティング・システム上で実行できます。

- OpenVMSバージョン7.2以降(DECwindows Motifバージョン1.2-3 が必要)

- Microsoft Windows 95

- Microsoft Windows NTバージョン3.51以降(IntelまたはAlpha)

また，OpenVMSデバッガ・クライアント/サーバ構成では，サーバを実行するOpenVMS ノードに，次のものがインストールされていることが必要です。

- TCP/IPスタック

- DCE RPC

注意
  TCP/IP Services for OpenVMS (UCX)バージョン4.1を実行している場合は，ECO2がインストールされていることも必要になります。UCX の最新バージョンを実行することもできます。

  OpenVMS バージョン7.2のインストール・プロシージャでは，DCE RPCが自動的にインストールされます。

## 9.8.2 サーバの起動

OpenVMSシステムに直接ログインしてからデバッグ・サーバを起動することもできますが，eXcursion のような製品やTelnetのようなターミナル・ エミュレータを使用して，リモートでログインするほうが便利です。

デバッグ・サーバを起動するには，次のコマンドを入力します。

         $ DEBUG/SERVER

サーバのネットワーク・バインド文字列が表示されます。サーバのポート番号は， 角括弧([])で囲まれて表示されます。例を示します。

    $ DEBUG/SERVER

    %DEBUG-I-SPEAK: TCP/IP: YES, DECnet: YES, UDP: YES
    %DEBUG-I-WATCH: Network Binding: ncacn_ip_tcp:16.32.16.138[1034]
    %DEBUG-I-WATCH: Network Binding: ncacn_dnet_nsp:19.10[RPC224002690001]
    %DEBUG-I-WATCH: Network Binding: ncadg_ip_udp:16.32.16.138[1045]
    %DEBUG-I-AWAIT: Ready for client connection...

クライアントから接続する場合は，サーバを指定するために， いずれかのネットワーク・バインド文字列を使用します(第9.8.4項を参照)。 次の表に，ネットワーク・ トランスポートとネットワーク・バインド文字列の接頭辞の対応を示します。

ネットワーク・ トランスポート | ネットワーク・ バインド文字列の接頭辞
--- | ---
TCP/IP | ncacn_ip_tcp
DECnet | ncacn_dnet_nsp
UDP | ncadg_ip_udp

注意
  通常は，ノード名とポート番号だけを使用してサーバを指定することができます。 `nodnam[1034]`がその例です。

  省略時の設定では，サーバを起動したウィンドウに， メッセージとプログラム出力が表示されます。 必要に応じて，プログラム出力を別のウィンドウにリダイレクトすることができます。

次の例には，DCEがインストールされていないことを示すエラー・メッセージが含まれています。

         $ debug/server
         %LIB-E-ACTIMAGE, error activating image disk:[SYSn.SYSCOMMON.][SYSLIB]DTSS$SHR.EXE;
         -RMS-E-FNF, file not found

このエラー・メッセージの場合，DCEはインストールされていますが，設定されていません。

## 9.8.3 プライマリ・クライアントとセカンダリ・ クライアント

デバッガのクライアント/サーバ・インタフェースを使用すると，同じサーバに1 つ以上のクライアントを接続することが可能になります。この機能を利用すると， チームによるデバッグや教室でのセッション，その他のアプリケーションを実現できます。

プライマリ・クライアントは，サーバに最初に接続されたクライアントです。 セカンダリ・クライアントは，同じサーバに後から接続されたクライアントです。 プライマリ・クライアントによって，サーバにセカンダリ・ クライアントを接続できるようにするかどうかが制御されます。

セッション中で，いくつのセカンダリ・クライアントを使用できるようにするかを指定する方法については， 第9.8.4 項で説明します。

## 9.8.4 Motifクライアントの起動

セッションとは，特定のクライアントと特定のサーバの間の接続のことです。 クライアントでは，サーバへの接続の際にクライアントが使用したネットワーク・ バインド文字列によって，各セッションが識別されます。デバッグ・ サーバを起動してから，Motifデバッガ・クライアントを起動してください。 起動するには，次のコマンドを入力ます。

         $ DEBUG/CLIENT

Motifデバッグ・クライアントからセッションを確立するには，「File」メニューの「Server Connection 」をクリックします。「Server Connection」ダイアログの「Connection」リストには，省略時の設定のネットワーク・ バインド文字列が表示されます。表示される文字列は直前に入力したものか， またはクライアントが実行されているノードとなります。 サーバを省略時の設定のバインド文字列に関連付ける必要はありません。 図 9-6に「Server Connection」ダイアログを示します。

### 図 9-6 「Server Connection」ダイアログ

「Server Connection」ダイアログの下部にあるボタンを使用すると，次のことを行えます。

- 選択したサーバに接続して，新規のセッションを起動する。

- セッションを切断する。

- セッションがまだ使用可能かどうかをテストする。

- サーバを停止する。

- 接続操作を取り消して，ダイアログを消去する。

また，「Options」ボタンをクリックすると，「Server Options」ダイアログが表示されます。 「Server Options」ダイアログでは，使用するトランスポートを選択することができます( 第11.5.1 項を参照)。

「Server Options」ダイアログでは，新規のセッションで使用できるセカンダリ・ クライアントの数(0〜31)を選択することもできます。

図 9-7に「Server Options」ダイアログを示します。

### 図 9-7 「Server Options」ダイアログ

クライアントをサーバに接続するには，次の手順に従ってください。

1. 「File」メニューを開く。

2. 「Server Connection」をクリックする。

3. 「Connection」フィールドに，サーバのネットワーク・バインド文字列を入力するか， 省略時の設定の文字列のままにする。

4. 「Options」をクリックする。

5. 「Server Options」ダイアログで，ネットワーク・トランスポートをクリックする(TCP/IP ，DECnet，またはUDP)。

6. 「Server Options」ダイアログで，使用できるようにするセカンダリ・ クライアントの数を選択する(0〜31)。

7. 「OK」をクリックして，「Server Options」ダイアログを消去する。

8. 「Server Connection」ダイアログで，「Connect」をクリックする。

上記の手順を繰り返し，新規のネットワーク・バインド文字列をその都度指定することによって， いくつでも，サーバに対する接続を確立することができます。

## 9.8.5 セッションの切り替え

サーバに接続してセッションを起動すると，「Server Connection」ダイアログの「Active Sessions 」リストにセッションが表示されます(図 9-8 を参照)。前後のセッションに切り替えることが可能です。 新規のセッションに切り替えると，表示されているデバッガ画面の内容が， デバッガによって新しい内容に更新されます。

別のセッションに切り替えるには，次の手順に従ってください。

1. 「File」メニューを開く。

2. 「Server Connection」をクリックする。

3. 「Active Sessions」リストをクリックして，アクティブなセッションのリストを表示する。

4. 「Active Sessions」リスト内の目的のセッションをダブルクリックする。 ダブルクリックしたセッションがカレント・セッションとして選択されて， 「Server Connection」ダイアログが消去されて， デバッガ画面が現在の内容に更新される。

セッションがアクティブになっている間は，セッションで使用できるセカンダリ・ クライアントの数を変更できない点に注意してください。セッションで使用できるセカンダリ・ クライアントの数を変更するには，プライマリ・ クライアントで次の手順に従ってください。

1. 「File」メニューを開く。

2. セッションのネットワーク・バインド文字列を指定する。

3. 「Disconnect」をクリックする。

4. 「Options」をクリックする。

5. 「Server Options」ダイアログで，ネットワーク・トランスポートをクリックする(TCP/IP ，DECnet，またはUDP)。

6. 「Server Options」ダイアログで，使用できるようにするセカンダリ・ クライアントの数を選択する(0〜31)。

7. 「OK」をクリックして，「Server Options」ダイアログを消去する。

8. 「Server Connection」ダイアログで，「Connect」をクリックする。

### 図 9-8 「Active Sessions」リスト

## 9.8.6 クライアント/サーバ・セッションの終了

「File」メニューの「Exit Debug?」をクリックして，「Confirm Exit」ダイアログを表示します。 図 9-9に「Confirm Exit 」ダイアログを示します。

### 図 9-9 「Confirm Exit」ダイアログ

「Confirm Exit」ダイアログが表示されたら，次のいずれかを行ってください。

- クライアントとサーバの両方を終了する場合は，「OK」をクリックする( 省略時の設定)。

- 何も行わずに「Confirm Exit」ダイアログを消去するには， 「Cancel」をクリックする。

- デバッグ・クライアントのみを終了する場合は，次の手順に従う。

  1. 「Exit Server」をクリックする。

  2. 「OK」をクリックする。

- デバッグ・サーバのみを終了する場合は，次の手順に従う。

  1. 「Exit Client」をクリックする。

  2. 「OK」をクリックする。

デバッグ・サーバを終了しない場合は，別のデバッグ・クライアントからサーバに接続することが可能です。 クライアントを終了しない場合は，ネットワーク・ バインド文字列が分かっている別のサーバに接続することができます。

[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]