前へ | 次へ | 目次 | 索引 |
DCL コマンドの RUN program-image を入力すると,1 つの手順で,デバッガを起動してプログラムをデバッガの制御下に置くことができます。そのプログラムは /DEBUG 修飾子を使用してコンパイルとリンクが行われているものと想定されます。
しかし,この方法で起動した場合は,第 9.3 節 と 第 9.4 節 でそれぞれ説明した再実行機能と実行機能を使用することはできません。デバッガの制御下で同一プログラムを再実行するか別のプログラムを実行するには,いったんデバッガを終了してからもう一度起動する必要があります。
プログラムの実行によってデバッガを起動するには,DCL コマンドの RUN program-image を入力してデバッガを起動します。次に例を示します。
$ RUN EIGHTQUEENS |
省略時の設定では,デバッガが 図 9-4 のように起動され,ユーザ定義初期化ファイルが実行され,メイン・ウィンドウにプログラムのソース・コードが表示されます。現在位置ポインタは,メイン・プログラムの先頭で実行を一時停止していることを示しています。そして,メイン・プログラム・ユニットのソース言語に合わせて言語固有のパラメータが設定されます。
デバッガの起動についての詳しい説明は,第 9.1 節 を参照してください。
9.7.2 実行中のプログラムの割り込み後のデバッガの起動
ユーザは実行中のプログラムを自由にデバッガの制御下に置くことができます。これは,プログラムが無限ループに陥っていると思われるときや,出力が誤っていることに気付いた場合などに役立ちます。
プログラムをデバッガの制御下に置くには,次の手順に従ってください。
次に例を示します。
$ RUN/NODEBUG EIGHTQUEENS . . . [Ctrl/Y] Interrupt $ DEBUG [starts debugger] |
デバッガの起動時には,メイン・ウィンドウが表示され,ユーザ定義初期化ファイルが実行されます。また,実行に割り込みがかけられたモジュールのソース言語に合わせて,言語固有のパラメータが設定されます。
どこで実行に割り込みがかけられたかを確認するには,次のようにします。
この方法でデバッガを起動した場合は, 第 9.3 節 と 第 9.4 節 でそれぞれ説明した再実行機能と実行機能を使用することはできません。デバッガの制御下で同一プログラムを再実行するか別のプログラムを実行するには,いったんデバッガを終了してからもう一度起動する必要があります。
デバッガの起動についての詳しい説明は,第 9.1 節 を参照してください。
9.7.3 デバッガの省略時のインタフェースの変更
ワークステーションで Compaq DECwindows Motif for OpenVMS を稼働している場合,省略時の設定では,デバッガは Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースで起動されます。Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースは,Compaq DECwindows Motif for OpenVMS のアプリケーション全体に通用する論理名 DECW$DISPLAY で指定されたワークステーションに表示されます。
ここでは,次の操作を行うためにデバッガの省略時の DECwindows Motif ユーザ・インタフェースを無効にする方法について説明します。
論理名 DBG$DECW$DISPLAY によって,デバッガの省略時のインタフェースを変更することができます。ほとんどの場合,省略時設定が適正なので DBG$DECW$DISPLAY を定義する必要はありません。
論理名 DBG$DECW$DISPLAY と論理名 DECW$DISPLAY については,第 9.7.3.4 項 を参照してください。
9.7.3.1 別のワークステーション上でのデバッガの Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースの表示
画面の大部分を使用する Compaq DECwindows Motif for OpenVMS アプリケーションをデバッグする場合(または,Motif アプリケーションのポップアップをデバッグする場合),1 台のワークステーションでプログラムを実行し,別のワークステーションにデバッガの Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースを表示すると便利です。その場合は次の手順に従ってください。
DEFINE/JOB DBG$DECW$DISPLAY workstation_pathname |
workstation_pathname は,デバッガの Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースを表示するワークステーションのパス名です。このパス名の構文については,『Compaq OpenVMS DCL ディクショナリ』の SET DISPLAY コマンドの説明を参照してください。
なるべくジョブ定義を使用してください。プロセス定義を使用する場合は,CONFINE 属性を与えないでください。
9.7.3.2 DECtermウィンドウへのデバッガのコマンド・ユーザ・インタフェースの表示
デバッガのコマンド・インタフェースをプログラムの入出力(I/O)とともに DECterm ウィンドウの中に表示するには,次の手順に従ってください。
$ DEFINE/JOB DBG$DECW$DISPLAY " " |
二重引用符の間には 1 つ以上のスペース文字を指定することができます。論理名にはジョブ定義を使用してください。プロセス定義を使用する場合は,CONFINE 属性を与えないでください。
デバッガのコマンド・インタフェースが同一ウィンドウに表示されます。
次に例を示します。
$ DEFINE/JOB DBG$DECW$DISPLAY " " $ DEBUG/KEEP Debugger Banner and Version Number DBG> |
これで,第 9.1 節 で説明した方法でプログラムをデバッガの制御下に置くことができます。
9.7.3.3 別の DECterm ウィンドウへのコマンド・インタフェースとプログラムの入出力(I/O)の個別表示
ここでは,デバッガを起動する DECterm ウィンドウ以外の DECterm ウィンドウに,デバッガのコマンド・インタフェースを表示する方法について説明します。画面用プログラムのデバッグにコマンド・インタフェースを使用する場合は,この別ウィンドウが便利です。
Compaq DECwindows Motif for OpenVMS ではなく VWS が稼働しているワークステーションの DBG> プロンプトで SET MODE SEPARATE コマンドを入力しても同じ効果が得られます。(DECterm ウィンドウの中では SET MODE SEPARATE コマンドは無効です。)
「Debugger」という別のデバッガ・ウィンドウにデバッガのコマンド・インタフェースを表示する方法を次の例に示します。
例 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コマンドは,デバッグ・セッションの $ ! 終了時に別ウィンドウをオープンしたまま残す。 |
$ @SEPARATE_WINDOW %DCL-I-ALLOC, _MYNODE$TWA8: allocated |
SEPARATE_WINDOW.COM で指定されている属性の新しい DECterm ウィンドウが作成される。
$ DEASSIGN/JOB DBG$INPUT $ DEASSIGN/JOB DBG$OUTPUT |
ユーザが明示的に閉じるまで,デバッガのウィンドウは開いたままである。
9.7.3.4 DBG$DECW$DISPLAYとDECW$DISPLAYの説明
ワークステーションで Compaq DECwindows Motif for OpenVMS が稼働している場合,省略時の設定では,デバッガは Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースで起動されます。Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースは,Compaq DECwindows Motif for OpenVMS のアプリケーション全体に通用する論理名 DECW$DISPLAY で指定されたワークステーションに表示されます。DECW$DISPLAY は,FileView または DECterm によってジョブ・テーブルの中に定義されます。DECW$DISPLAY はワークステーション用の表示装置を指します。
DECW$DISPLAY についての詳しい説明は,『Compaq 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 の論理定義を使用している場合,デバッガは次のアルゴリズムに従って動作します。
OpenVMS デバッガが Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースで起動するように設定するときは,次のいずれかのコマンドを使用します。
$DEFINE DBG$DECW$DISPLAY "WSNAME::0" $SET DISPLAY/CREATE/NODE=WSNAME |
ただし WSNAME は,ワークステーションのノード名になります。
9.8 Motifデバッグ・クライアントの起動
OpenVMS デバッガ・バージョン 7.2 の機能であるクライアント/サーバ・インタフェースを使用すると,OpenVMS(VAX または Alpha CPU)上で実行されているプログラムを,同じシステム上,または別のシステム上で実行されているクライアント・インタフェースからデバッグすることができます。
デバッガのクライアント/サーバでは,保持デバッガの機能をそのまま使用することができますが,デバッガは,デバッグ・サーバとデバッグ・クライアントという 2 つの構成要素に分割されています。デバッグ・サーバは OpenVMS システム上で実行され,ユーザ・インタフェースを持たない保持デバッガに相当します。一方,デバッグ・クライアントはユーザ・インタフェースを持ち,Compaq DECwindows Motif for OpenVMS を使用する OpenVMS システム上,または Microsoft Windows 95 か Microsoft Windows NT を使用する PC 上で実行されます。
9.8.1 ソフトウェアの必要条件
デバッグ・サーバの実行には,OpenVMS バージョン 7.2 以降が必要です。
デバッグ・クライアントは,次のいずれかのオペレーティング・システム上で実行できます。
また,OpenVMS デバッガ・クライアント/サーバ構成では,サーバを実行する OpenVMS ノードに,次のものがインストールされていることが必要です。
TCP/IP Services for OpenVMS(UCX)バージョン 4.1を実行している場合は,ECO2 がインストールされていることも必要になります。UCX の最新バージョンを実行することもできます。 OpenVMS バージョン 7.2 のインストール・プロシージャでは,DCE RPC が自動的にインストールされます。 |
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はインストールされていますが,設定されていません。
前へ | 次へ | 目次 | 索引 |