Compaq OpenVMS
デバッガ説明書


前へ 次へ 目次 索引


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」ダイアログが表示されたら,次のいずれかを行ってください。

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


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

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

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

Compaq 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 目的のソース・コードを表示できない場合

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

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

10.1.4 ソース・ファイルの記憶位置の指定

ソース・ファイルの特性と記憶位置についての情報は,プログラムのデバッグ・シンボル・テーブルに入っています。ソース・ファイルがコンパイル後に別のディレクトリに移動された場合,そのソース・ファイルが見つからないことがあります。ソース・ファイルの記憶位置をデバッガに指示するには,DBG> プロンプトで SET SOURCE コマンドを入力します(第 8.3 節 を参照)。

10.2 ユーザ・プログラムの編集

OpenVMS デバッガには簡単なテキスト・エディタが用意されており,ユーザ・プログラムをデバッグ中にソース・ファイルを編集することができます(図 10-3 を参照)。

デバッガの Compaq DECwindows Motif for OpenVMS メニュー・インタフェースで使用できるテキスト・エディタは,簡単な機能のエディタであるため,ランゲージ・センシティブ・エディタ(LSE)のような優れた機能を持つエディタにはおよびません。ただし「Commands」メニューの「Edit File」項目で起動するテキスト・エディタに,このような優れた機能を持つエディタを使用することはできません。内蔵エディタ以外のエディタを使用する場合は,コマンド・ビューの DBG> プロンプトで Edit コマンドを入力します(本書の第 3 部にある EDIT コマンドの項を参照)。

注意

コマンド・プロンプトに対して EDIT コマンドを入力すると,デバッガはデバッグ・セッションを起動した DECterm ウィンドウをユーザ定義エディタ・ウィンドウとして使用します(COMMANDS EDIT FILE プルダウン・メニューにハードワイヤ接続されているデバッガの組み込みエディタは使用されません)。この動作により,エディタを柔軟に選択できるようになります。FILE EXIT または MWM Close を使用して,この DECterm ウィンドウを誤って終了した場合には,デバッグ・セッションは異常終了し,親ウィンドウが失われます。

図 10-3 エディタ・ウィンドウ


エディタを起動するには,メイン・ウィンドウの「Command」メニューで「Edit File」を選択します。省略時の設定では,このエディタによりバッファが1つオープンされ,ソース・ビューに現在表示されているモジュールがそのバッファに表示されます。このバッファには,バッファのファイルに関するファイル指定の名前がつけられます。ソース・ビューにファイルが表示されない場合,main_buffer という名前を持つ空のテキスト・バッファが表示されます。バッファ名は,エディタ・ビューのメニュー・バーのすぐ下にあるバッファ・メニューに表示されます。

「File」メニューで「New」(空のテキスト・バッファ)または「Open」(既存のファイル)を選択すると,テキスト・バッファをいくつでも作成することができます。各テキスト・バッファの名前はバッファ・メニューに表示されます。バッファ間でテキストのカット,コピー,ペーストを実行するには,「Edit」メニューで項目を選択してから,バッファ・メニューでバッファを選択します。

前方検索,後方検索,置換の各操作を実行するには,「Find」と「Replace with」の各フィールドに文字列を入力してから,上下の方向を表した矢印をクリックします。Return キーを繰り返し押すと,文字列が繰り返し検索されます。「Edit」メニューで「Find/Replace Next」または「Find/Replace Previous」を選択して検索を繰り返すこともできます。

ファイルを保存するときは,「File」メニューから「Save」または「Save As」を選択します。変更したバッファをクローズしたり,デバッガを終了したりする前に,その内容を保存していない場合は,警告メッセージが表示されます。

ソース・コードを変更して,その結果をテストするときは,次の手順で行います。

  1. デバッガを実行していないいDECtermウィンドウを選択する。

  2. プログラムをコンパイルし直す。

  3. プログラムをリンクし直す。

  4. デバッグ・セッションに戻る。

  5. メイン・ウィンドウの「File」メニューから「Run Image...」を選択する。


前へ 次へ 目次 索引