library home hp.com home products and services support and drivers solutions
cd-rom home
End of Jump to page title
HP OpenVMS Systems
Documentation

Jump to content


HP OpenVMS

HP OpenVMS
デバッガ説明書


前へ 次へ 目次 索引


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

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

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

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

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

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

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

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

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

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

どの場合もデバッガの起動前に, 第 1.2 節 の説明に従ってプログラム・モジュールをコンパイルおよびリンクした。

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

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

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

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


$ RUN EIGHTQUEENS

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

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

9.8.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.8.3 デバッガの省略時のインタフェースの変更

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

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

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

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

9.8.3.1 別のワークステーション上でのデバッガの HP DECwindows Motif for OpenVMS ユーザ・インタフェースの表示

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

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


    DEFINE/JOB DBG$DECW$DISPLAY workstation_pathname
    


    workstation_pathname は,デバッガの HP DECwindows Motif for OpenVMS ユーザ・インタフェースを表示するワークステーションのパス名です。このパス名の構文については,『OpenVMS DCL ディクショナリ』の SET DISPLAY コマンドの説明を参照してください。
    なるべくジョブ定義を使用してください。プロセス定義を使用する場合は, CONFINE 属性を与えないでください。

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

  3. クライアント/サーバ・モードの使用 ( 第 9.9.2 項 を参照 )。

9.8.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.8.3.3 別の DECterm ウィンドウへのコマンド・インタフェースとプログラムの入出力 (I/O) の個別表示

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

HP DECwindows Motif for OpenVMS ではなく 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.8.3.2 項 の手順を実行する。新しいウィンドウにコマンド・インタフェースが表示される。

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

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

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


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


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

9.8.3.4 DBG$DECW$DISPLAYとDECW$DISPLAYの説明

ワークステーションで HP DECwindows Motif for OpenVMS が稼動している場合,省略時の設定では,デバッガは HP DECwindows Motif for OpenVMS ユーザ・インタフェースで起動されます。 HP DECwindows Motif for OpenVMS ユーザ・インタフェースは, HP DECwindows Motif for OpenVMS のアプリケーション全体に通用する論理名 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$DISPLAY が未定義である場合,または変換された DBG$DECW$DISPLAY が DECW$DISPLAY と同じである場合です。省略時の設定では DBG$DECW$DISPLAY は未定義です。

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

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

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

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


$DEFINE DBG$DECW$DISPLAY "WSNAME::0" 
 
$SET DISPLAY/CREATE/NODE=WSNAME 

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

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

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

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

9.9.1 ソフトウェアの必要条件

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

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

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

注意

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

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


前へ 次へ 目次 索引