日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 部:デバッガ概要
第 1 章:デバッガ概要
第 2 部:コマンド・インタフェース
第 2 章:デバッガの起動
第 3 章:プログラム実行の制御とモニタ
第 4 章:プログラム・データの検査と操作
第 5 章:プログラム内シンボルへのアクセス制御
第 6 章:ソース・コードの表示の制御
第 7 章:画面モード
第 3 部:DECwindows インタフェース
第 8 章:DECwindows Motifインタフェースの概要
第 9 章:デバッグ・セッションの開始と終了
第 10 章:デバッガの使用方法
第 4 部:PC クライアント・インタフェース
第 11 章:デバッガの PC クライアント/サーバ・インタフェースの概要
第 5 部:高度なトピック
第 12 章:ヒープ・アナライザの使用
第 13 章:その他の便利な機能
第 14 章:特殊なデバッグ
第 15 章:マルチプロセス・プログラムのデバッグ
第 16 章:タスキング・プログラムのデバッグ
第 6 部:付録
付録 A :定義済みのキー機能
付録 B :組み込みシンボルと論理名
付録 C :各言語に対するデバッガ・サポートの要約
付録 D :EIGHTQUEENS.C
索引
PDF
OpenVMS ホーム

HP OpenVMS
デバッガ説明書


目次 索引

第 7 章
画面モード

画面モードは,OpenVMS デバッガのコマンド行インタフェースの拡張機能であり,このモードでは, HP DECwindows Motif for OpenVMS ユーザ・インタフェースの場合と同じ方法で ( 第 3 部 を参照),デバッグ・セッションに関する個別のデータ・グループを同時に表示できます。たとえば,画面の一部分にソース・コードを表示し,別の部分にレジスタの内容を表示し,さらに別の部分にデバッガからの出力を表示できます。

画面モードを起動するには,キーパッドの PF3 を押します ( または SET MODE SCREEN コマンドを入力します )。コマンド行インタフェースによるデバッグに戻るには,PF1 PF3 を押します ( または SET MODE NOSCREEN コマンドを入力します )。

  注意
デバッガに対する DECWindows Motif インタフェースの内部から画面モードを開始することはできません。

画面モード出力は,VT52 以上のVTシリーズ端末,および VWS を使用しているワークステーションの場合に最適です。特に,ワークステーションの画面が大きいほど,多数の画面をさまざまな目的に使用するのに適しています。

本章には次の内容が含まれています。

  • 本章全体で使用される画面モードの概念と用語

  • 各種のディスプレイの使用方法

  • ディスプレイ属性の割り当てによってデバッガ出力を各種のディスプレイへ出力する方法

  • 画面モードになった時点で自動的に使用できるようになる定義済みディスプレイの SRC,OUT,PROMPT,INST,REG,IREG,および FREG (Alpha のみ ) の使用方法

  • ディスプレイのスクロール,非表示,削除,移動,およびサイズ変更

  • 新しいディスプレイの作成

  • ディスプレイ・ウィンドウの指定

  • ディスプレイ構成の作成

  • 画面ディスプレイの現在の状態の保存

  • デバッグ・セッション中に端末画面の高さと幅を変更する方法とディスプレイ・ウィンドウでの効果

  • 画面に関連したデバッガ組み込みシンボルの使用方法

  • 定義済みウィンドウの使用方法

  • 画面モードの各国固有の機能を使用可能にする

画面モード・コマンドの多くはキーパッド・キーにバインドされています。キー定義については, 付録 A を参照してください。

  注意
本章では,1 つまたは複数のプロセスで実行されるプログラムに共通した情報を提供します。その他のマルチプロセス・プログラム固有の情報については, 第 15 章 を参照してください。



ディスプレイ とはテキスト行のまとまりのことです。テキストには,ソース・ファイルに入っている行,アセンブリ言語の命令,レジスタに入っている値,ユーザからデバッガへの入力,デバッガ出力,またはプログラム入出力 (I/O) などがあります。

ディスプレイは ディスプレイ・ウィンドウ を通して参照します。ウィンドウは画面の任意の長方形の領域を占有できます。ディスプレイ・ウィンドウはディスプレイそのものより小さいのが普通なので,ディスプレイ・テキストを越えてウィンドウを上下左右にスクロールさせ,ディスプレイの任意の部分を参照することができます。

図 7-1 は,3 つのディスプレイ・ウィンドウのある画面モードの例です。各ディスプレイの名前 (SRC, OUT,および PROMPT) は,それぞれのウィンドウの左上隅にあります。これらはディスプレイ自体のタグとして機能するだけでなく,あとでコマンドで参照するための名前としても機能します。

図 7-1 省略時の画面モード・ディスプレイ構成


図 7-1 は,画面モードを最初に起動したときに設定される省略時のディスプレイ構成です。SRC, OUT,および PROMPT は,画面モードに入ったときに省略時の設定としてデバッガが提供する 3 つの 定義済みディスプレイ ( 第 7.4 節 を参照 ) です。追加のディスプレイを作成するのと同様にこれらのディスプレイの構成を変更することができます。

SRC,OUT,および PROMPT の各ディスプレイには次の基本的な特性があります。

  • SRC は画面の上半分を使用するソース・コードのディスプレイである ( 図 7-1 の例では,Fortran コードが表示されている )。表示されるソース・モジュールの名前,SQUARES$MAIN はディスプレイ名の右側に表示される。

  • SRC のすぐ下のウィンドウにあるディスプレイ OUT は,デバッガ・コマンドの出力を示している。

  • 画面の一番下にあるディスプレイ PROMPT は,デバッガのプロンプトと入力を示している。

概念上では,ディスプレイは ペーストボード 上の場合と同じように画面上に配置されます。あるコマンドによって参照された最新のディスプレイは,省略時の設定ではペーストボードの最上部に置かれます。したがって,ウィンドウの記憶位置によって,最後に参照したディスプレイが他のディスプレイに重なるか他のディスプレイを隠すかが決まります ( ペーストボード上の場合と同じ )。

デバッガは,ディスプレイをペーストする順序である ディスプレイ・リスト を保持します。いくつかのキーパッド・キー定義は,現在ペーストボード上にあるディスプレイの間を循環するために,このディスプレイ・リストを使用します。

ディスプレイはすべて何らかの ディスプレイ対象 に所属します ( 第 7.2 節 を参照 )。ディスプレイがどのような種類の情報 ( たとえば,ソース・コード,アセンブリ言語命令,各種のデバッガ出力など ) を取り込んで表示できるかは,このディスプレイ対象によって決まります。またディスプレイ対象によって,ディスプレイの内容が生成される方法も決まります。

ディスプレイの内容は2つの方法で生成されます。

  • 自動的に更新されるディスプレイがいくつかあります。それらのディスプレイの定義には,デバッガがプログラムから制御を取得したときに常に実行されるコマンド・リストが含まれています。このコマンド・リストの出力が,自動更新ディスプレイの内容になります。ディスプレイ SRC はこのカテゴリに属します。このディスプレイは,ウィンドウの中央に置かれた矢印が,現在実行が一時停止している位置のソース行を示すように自動的に更新されます。

  • もう 1 つのディスプレイ,たとえば,ディスプレイ OUT などでは,ユーザが会話形式で入力したコマンドの内容がディスプレイ内容になります。この一般的なカテゴリに属すディスプレイを作成する場合,ユーザは前もってそのディスプレイを 1 つまたは複数の種類の出力用のターゲット・ディスプレイとして選択 (SELECT コマンドを使用 ) しておかなければ,そのディスプレイに書き込みを行うことはできません。このことを,ディスプレイへの 1 つまたは複数の ディスプレイ属性 の割り当てといいます ( 第 7.3 節 を参照 )。

ディスプレイへ割り当てた属性の名前は,ディスプレイ名の右側に小文字で表示されます。たとえば 図 7-1 では,SRC は source 属性と scroll 属性を持ち (SRC は 現在のソースのディスプレイ であり 現在のスクロール・ディスプレイである),OUT は output 属性を持っています。これは 現在の出力ディスプレイ です。 SRC はその独自の組み込みコマンドによって自動的に更新されますが, source 属性を持っているので,ある種の会話型コマンド ( たとえば, EXAMINE/SOURCE など ) の出力も受け取ることに注意してください。

この節で紹介した概念については,この章の残りの部分でさらに詳しく説明します。

7.2 ディスプレイ対象

ディスプレイはすべてディスプレイ対象を持っています。このディスプレイ対象は,そのディスプレイに含まれる情報の種類とその情報が生成される方法を決めます。またディスプレイに関連するメモリ・バッファがページングされるかどうかを決めます。

通常,ディスプレイ対象は新しいディスプレイを作成するために DISPLAY コマンドを使用するときに指定します。ディスプレイ対象を指定しなかった場合は 出力ディスプレイ が作成されます。DISPLAY コマンドは,次のキーワードと一緒に使用して,既存のディスプレイのディスプレイ対象を変更するために使用することもできます。

DO (command[,...])
INSTRUCTION
INSTRUCTION (command)
OUTPUT
REGISTER
SOURCE
SOURCE (command)

レジスタ・ディスプレイ の内容はデバッガによって自動的に生成および更新されます。その他のディスプレイの対象の内容はコマンドによって生成され,それらのディスプレイ対象は 2 つの一般的なグループに分かれます。

次のディスプレイ対象のいずれかに属するディスプレイでは,ユーザがそのディスプレイを定義したときに与えたコマンドまたはコマンド・リストに従って内容が自動的に更新されます。

DO (command[,...])
INSTRUCTION (command)
REGISTER
SOURCE (command)

指定したコマンド・リストは,そのディスプレイが除去済みとしてマークされていないかぎり,デバッガがユーザのプログラムから制御を受け取るたびに実行されます。それらのコマンドの出力がディスプレイの新しい内容になります。ディスプレイが除去済みとしてマークされている場合,デバッガはユーザがそのディスプレイを可視にする(そのディスプレイを非除去済みとしてマークする)まで,そのコマンドを実行しません。

次のディスプレイ対象のいずれかに属するディスプレイでは,ユーザが会話形式で入力したコマンドから内容が作成されます。

INSTRUCTION
OUTPUT
SOURCE

デバッガの出力をこのグループの特定のディスプレイへ出力するには,まず SELECT コマンドでそのディスプレイを選択しなければなりません。その方法については次の各項と, 第 7.3 節 で説明します。特定の出力のディスプレイを選択したあとは,ユーザのコマンドからの出力がそのディスプレイの内容になります。

7.2.1 DO (コマンド[;...])ディスプレイ対象

DO ディスプレイは自動的に更新されるディスプレイです。コマンド・リスト内のコマンドは,デバッガがユーザのプログラムから制御を受け取るたびに,リストされた順に実行されます。それらのコマンドの出力がディスプレイの内容になり,前の内容は消去されます。

たとえば,次のコマンドは DO ディスプレイの CALLS をウィンドウ Q3 に作成します。 (ウィンドウ Q3 は,ウィンドウの画面寸法を示します。画面寸法と,定義済みのウィンドウについては, 第 7.12 節 を参照してください。) デバッガがプログラムから制御を受け取るたびに SHOW CALLS コマンドが実行され,その出力が CALLS に表示され,前の内容は消去されます。

DBG> DISPLAY CALLS AT Q3 DO (SHOW CALLS)

次のコマンドは,ベクタ・レジスタ V2 の要素 4 〜 7 の内容を FORTRAN 配列の構文を使用して表示する V2_DISP という名前の DO ディスプレイを作成します。このディスプレイはデバッガが制御を受け取るたびに自動的に更新されます。

DBG> DISPLAY V2_DISP AT RQ2 DO (EXAMINE %V2(4:7))

DO ディスプレイに割り当てられるメモリ・バッファの省略時のサイズは 64 行です。メモリ・バッファが満杯になると,最も古い行が破棄され,次のテキストを表示するための空間が確保されます。バッファ・サイズを変更するには,DISPLAY/SIZE コマンドを使用します。

7.2.2 INSTRUCTIONディスプレイ対象

機械語命令ディスプレイは,ルーチンの命令ストリーム内にある EXAMINE/INSTRUCTION コマンドの出力を表示します。表示される命令はデバッグされているイメージからデコードされたものであり,実行されているコードを正確に示しているので,この種のディスプレイは最適化されたコードをデバッグするのに特に役立ちます ( 第 14.1 節 を参照 )。

このディスプレイでは1行が命令 1 つに相当します。命令に対応するソース行番号は左側の欄に表示されます。検査中の記憶位置にある命令はディスプレイの中央に置かれ,左側の欄の矢印によってマークされます。

機械語命令ディスプレイへ書き込みを行うには,前もって SELECT/INSTRUCTION コマンドでそのディスプレイを 現在の機械語命令ディスプレイ として選択しておかなければなりません。

次の例では,DISPLAY コマンドで機械語命令ディスプレイ INST2 を RH1 に作成します。その後,SELECT/INSTRUCTION コマンドで INST2 を現在の機械語命令ディスプレイとして選択します。EXAMINE/INSTRUCTION X コマンドを実行した時点で,ウィンドウ RH1 には X で表した記憶位置の前後にある命令ストリームが表示されます。記憶位置Xはディスプレイの中央に置かれ,矢印がその位置の命令を指します。

DBG> DISPLAY INST2 AT RH1 INSTRUCTION
DBG> SELECT/INSTRUCTION INST2
DBG> EXAMINE/INSTRUCTION X

これ以後,EXAMINE/INSTRUCTION コマンドを実行するたびにディスプレイが更新されます。

命令ディスプレイに割り当てられるメモリ・バッファの省略時のサイズは 64 行です。しかし,前後にスクロールすれば,ルーチン内のすべての命令を表示できます。バッファ・サイズを変更して性能を向上するには, DISPLAY/SIZE コマンドを使用します。

7.2.3 INSTRUCTION(コマンド)ディスプレイ対象

これは,指定したコマンドの出力によって自動的に更新される機械語命令ディスプレイです。そのコマンド (EXAMINE/INSTRUCTION コマンドでなければならない ) は,デバッガがユーザ・プログラムから制御を受け取るたびに実行されます。

たとえば,次のコマンドは機械語命令ディスプレイ INST3 をウィンドウ RS45 に作成します。デバッガが制御を受け取るたびに,組み込みコマンド EXAMINE/INSTRUCTION .%INST_SCOPE\%PC が実行され,ディスプレイが更新されます。

DBG> DISPLAY INST3 AT RS45 INSTRUCT (EX/INST .%INST_SCOPE\%PC)

このコマンドは,定義済みディスプレイ INST に似た機能を持つディスプレイを作成します。組み込み EXAMINE/INSTRUCTION コマンドは現在の有効範囲内で現在の PC 値にある命令を表示します ( 第 7.4.4 項 を参照 )。

自動的に更新される機械語命令ディスプレイを現在の機械語命令ディスプレイとして選択してある場合,そのディスプレイはその組み込みコマンドによって更新されるほかに,会話形式の EXAMINE/INSTRUCTION コマンドによって単純な機械語命令ディスプレイのように更新されます。

命令ディスプレイに割り当てられるメモリ・バッファの省略時のサイズは 64 行です。しかし,前後にスクロールすれば,ルーチン内のすべての命令を表示できます。バッファ・サイズを変更して性能を向上するには, DISPLAY/SIZE コマンドを使用します。

7.2.4 OUTPUTディスプレイ対象

出力ディスプレイは別のディスプレイへ出力されないデバッガ出力を表示します。新しい出力は前のディスプレイ内容に追加されます。

出力ディスプレイへ書き込みを行うには,前もってそのディスプレイを SELECT/OUTPUT コマンドで 現在の出力ディスプレイ として選択しておくか,SELECT/ERROR コマンドで 現在のエラー・ディスプレイ として選択しておくか,あるいは SELECT/INPUT コマンドで 現在の入力ディスプレイ として選択しておかなければなりません。出力ディスプレイに対する SELECT コマンドの使用についての詳しい説明は, 第 7.3 節 を参照してください。

次の例では,DISPLAY コマンドで出力ディスプレイ OUT2 をウィンドウ T2 に作成します ( ディスプレイ対象 OUTPUT は省略時のディスプレイ対象なので,この例では削除してもかまいません )。その後,SELECT/OUTPUT コマンドで OUT2 を現在の出力ディスプレイとして選択します。この 2 つのコマンドによって,定義済みディスプレイ OUT に似た機能を持つディスプレイが作成されます。

DBG> DISPLAY OUT2 AT T2 OUTPUT
DBG> SELECT/OUTPUT OUT2

その結果,OUT2 は他のディスプレイへ出力されないデバッガ出力をすべて収集するようになります。次に例を示します。

  • SHOW CALLSコマンドの出力はOUT2へ出力される。

  • 現在の機械語命令ディスプレイとして選択されている機械語命令ディスプレイがない場合,EXAMINE/INSTRUCTION コマンドの出力は OUT2 へ出力される。

  • 省略時の設定では,デバッガの診断メッセージは PROMPT ディスプレイへ出力される。この出力は,SELECT/ERROR コマンドで OUT2 へ出力することができる。

出力ディスプレイに割り当てられるメモリ・バッファの省略時のサイズは 64 行です。メモリ・バッファが満杯になると,最も古い行が破棄され,次のテキストを表示するための空間が確保されます。バッファ・サイズを変更するには,DISPLAY/SIZE コマンドを使用します。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.