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.9.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.9.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.9.3 プライマリ・クライアントとセカンダリ・クライアント

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

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

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

9.9.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.9.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.9.6 クライアント/サーバ・セッションの終了

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

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


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

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


第 10 章
デバッガの使用方法

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

本章ではウィンドウの動作とウィンドウ・メニューの選択項目について説明しますが,一般的なデバッガ操作の大部分は,コンテキスト依存のポップアップ・メニューから項目を選択して実行できます。コンテキスト依存のポップアップ・メニューにアクセスするには,マウス・ポインタをウィンドウ領域に置いて MB3 をクリックします。

HP DECwindows Motif for OpenVMS のコマンド・プロンプトにコマンドを入力することもできます。デバッガ・コマンドの入力については, 第 8.3 節 を参照してください。この章で紹介しているプログラム EIGHTQUEENS.EXE および 8QUEENS.EXE のソース・コードについては, 付録 D を参照してください。

10.1 ユーザ・プログラムのソース・コードの表示

デバッガはユーザ・プログラムのソース・コードをメイン・ウィンドウに表示します ( 図 10-1 を参照 )。

図 10-1 ソース・ディスプレイ


実行が中断すると ( たとえばブレークポイントで ),デバッガはソース・ウィンドウを更新して,実行の停止箇所近くのコードを表示します。ソース・コードの左にある現在位置ポインタは,コードのどの行が次に実行されるかを示します。 1 行のソース行は,言語とコーディング方法によって異なりますが, 1 つまたは複数のプログラミング言語の文に相当します。

省略時の設定では,ソース・コードの左にコンパイラ生成行番号が表示されます。この行番号により,ブレークポイント・ビュー ( 第 10.4.4 項 を参照 ) に表示されるブレークポイントを識別できます。ウィンドウに少しでも多くのソース・コードを表示したいときは,行番号を表示しないように選択することができます。行番号を表示するか表示しないかを指定するには,メイン・ウィンドウの「File」メニューで「Display Line Numbers」を選択します。

「Call Stack」メニューは,ソース・ビューとプッシュ・ボタン・ビューの間にありますが,ここには,表示されているソース・コードのルーチン名が表示されます。

現在位置ポインタは, 図 10-1 に示されるように通常塗りつぶされています。表示コードが実行停止ルーチンのコードでない場合,現在位置ポインタは白抜きになります ( 第 10.1.3 項第 10.6.2 項 を参照 )。

スクロール・バーを使用して,ソース・コードを次々と表示することができます。ただし,一度にスクロールできるのはユーザ・プログラムの 1 つの モジュール だけの,上下スクロールです。通常,1 つのコンパイル単位が 1 つのモジュールです。多くのプログラミング言語では, 1 つのモジュールは 1 つのソース・ファイルの内容と対応しています。言語の中には Ada のように,1 つのソース・ファイルの中に 1 つ以上のモジュールを含むものもあります。

次の各項では,プログラムの他の部分のソース・コードを表示する方法について説明します。したがって,各種のモジュールにブレークポイントを設定することなどができます。 第 10.1.3 項 では,表示するソース・コードが見つからない場合の処置について説明します。 第 10.6.2 項 では,呼び出しスタックで現在アクティブなルーチンのソース・コードの表示方法について説明します。

メイン・ウィンドウでの操作が終了したら,「Call Stack」メニューをクリックして,実行の停止箇所を表示し直すことができます。

コンパイル時にプログラムを最適化すると,表示されるソース・コードとプログラム記憶位置の実際の内容とが対応しなくなります ( 第 1.2 節 を参照 )。

10.1.1 別ルーチンのソース・コードの表示

別ルーチンのソース・コードを表示するには,次の手順に従ってください。

  1. メイン・ウィンドウの「File」メニューで「Browse Source...」を選択する ( 図 10-2 を参照 )。「Source Browser」ダイアログ・ボックスに,実行可能なイメージおよびこれにリンクされたすべての共用可能イメージ ( たとえば,DEBUG と LIBRTL) の名前が表示される。このとき実行可能なイメージは強調表示される。このイメージにシンボリック情報がない場合,リンクされたイメージの名前が薄く表示される。

  2. 実行可能なイメージの名前をダブル・クリックする。そのイメージ名の下にインデントされて,そのイメージ内の各モジュールの名前が表示される。

  3. 表示したいルーチンが含まれているモジュールの名前をダブル・クリックする。そのモジュール名の下にインデントされて,そのモジュール内の各ルーチンの名前が表示される。「Display Source」ボタンが強調表示される。

  4. ソース・コードを表示したいルーチンの名前をクリックする。

  5. 「Display Source」プッシュ・ボタンをクリックする。ルーチンのソース・コードがソース・ビューに表示され,同時にソース・コードの左に空のブレークポイント・ボタンが表示される。命令ビューがオープンしている場合,この表示が更新され,そのルーチンの機械語コードが表示される。

第 10.6.2 項 では,呼び出しスタック内にあり,現在アクティブなルーチンのソース・コードを表示する別の方法を説明しています。

図 10-2 別ルーチンのソース・コードの表示


10.1.2 別モジュールのソース・コードの表示

別モジュールのソース・コードを表示するには,次の手順に従ってください。

  1. メイン・ウィンドウの「File」メニューで「Browse Source...」を選択する。「Source Browser」ダイアログ・ボックスに,実行可能なイメージおよびこれにリンクされたすべての共用可能イメージ ( たとえば,DEBUG と LIBRTL) の名前が表示される。このとき実行可能なイメージは強調表示される。このイメージにシンボリック情報がない場合,共有可能なイメージの名前が薄く表示される。

  2. 実行可能なイメージの名前をダブル・クリックする。そのイメージ名の下にインデントされて,そのイメージ内の各モジュールの名前が表示される。

  3. 表示したいソース・コードを含んでいるモジュールの名前をクリックする。「Display Source」ボタンが強調表示される。

  4. 「Display Source」をクリックする。メイン・ウィンドウのソース表示にそのルーチンのソース・コードが表示される。命令ビューの命令ディスプレイをオープンしている場合,この表示が更新され,そのルーチンの命令コードが表示される。

10.1.3 目的のソース・コードを表示できない場合

ソース・コードを表示できない場合には,次のような原因が考えられます。

表示するソース・コードが見つからない場合,呼び出しスタックにある次のルーチンのソース・コードの表示が試行されます。そのようなルーチンのソース・コードが表示される場合,現在位置ポインタは,戻り先の呼び出し元ルーチンのソース行を示すために移動します。


前へ 次へ 目次 索引