Compaq OpenVMS
デバッガ説明書


前へ 次へ 目次 索引


7.8 ディスプレイ構成のサンプル

画面モードの使用法は,ユーザ個人のニーズや見つけたいエラーの種類によって異なります。定義済みのディスプレイを使用するだけで十分な場合もあります。大きな画面へアクセスできるときには,追加の表示をさまざまな用途に作成したい場合があります。次の例をそのような場合の参考にしてください。

高級言語でデバッグを行っているときに,複数のルーチン呼び出しを通してプログラムの実行をトレースしたいと想定します。

まず,省略時の画面構成,つまり H1 に SRC,S45 に OUT,S6 に PROMPT を設定します。キーパッド・キー・シーケンス PF4 MINUS でこの構成が得られます。SRC には実行が一時停止しているモジュールのソース・コードが表示されます。

次のコマンドは,有効範囲 1 での PC 値(実行が一時停止しているルーチンの呼び出しでの,呼び出しスタックの 1 レベル下)を示す SRC2 という名前のソース・ディスプレイを RH1 に作成します。


DBG> DISPLAY SRC2 AT RH1 SOURCE(EXAMINE/SOURCE .1\%PC)

この結果,画面の左半分には現在実行中のルーチンが表示され,右半分にはそのルーチンを呼び出し元が表示されます。

次のコマンドは,デバッガがプログラムから制御を受け取るたびに SHOW CALLS コマンドを実行する CALLS という名前の DO ディスプレイを S4 に作成します。


DBG> DISPLAY CALLS AT S4 DO(SHOW CALLS)

これによって OUT の上半分が CALLS で隠されるので,次のように OUT のウィンドウを小さくします。


DBG> DISPLAY OUT AT S5

同様なディスプレイ構成は,ソース・ディスプレイでなく機械語命令ディスプレイでも作成できます。

7.9 ディスプレイと画面状態の保存

SAVE コマンドを使用すると,既存のディスプレイのスナップショットを作成してそのコピーを新しいディスプレイとして保存することができます。これは,たとえば自動的に更新されるディスプレイ(DO ディスプレイなど)の現在の内容をあとで参照したい場合などに便利です。

次の例では,SAVE コマンドでディスプレイ CALLS の現在の内容をディスプレイ CALLS4 の中へ保存します。ディスプレイ CALLS4 は,このコマンドで作成されます。


DBG> SAVE CALLS AS CALLS4

新しいディスプレイはペーストボードから除去されます。その内容を表示するには DISPLAY コマンドを使用します。


DBG> DISPLAY CALLS4

EXTRACT コマンドには2つの用途があります。1 つはディスプレイの内容をテキスト・ファイルに保存することです。たとえば,次のコマンドはディスプレイ CALLS の内容を抽出し,そのテキストをファイル COB34.TXT へ追加します。


DBG> EXTRACT/APPEND CALLS COB34

もう 1 つの用途は,EXTRACT/SCREEN_LAYOUT コマンドを使用してコマンド・プロシージャを作成し,それをあとのデバッグ・セッションで実行して前の画面状態を再作成することです。次の例では,EXTRACT/SCREEN_LAYOUT コマンドで省略時の指定 SYS$DISK:[]DBGSCREEN.COM を持つコマンド・プロシージャを作成します。このファイルには,現在の画面の状態を再作成するために必要なすべてのコマンドが含まれています。


DBG> EXTRACT/SCREEN_LAYOUT
   .
   .
   .
DBG> @DBGSCREEN

PROMPT ディスプレイは,他のディスプレイのように保存したりファイルの中へ抽出したりすることはできないので注意してください。

7.10 画面の高さと幅の変更

デバッグ・セッションの間,端末画面の高さまたは幅を変更することができます。80 桁を表示した場合には折り返されてしまうような長い行を画面に収めたい場合や,ワークステーションでデバッガ・ウィンドウを他のウィンドウとの関係で再編集したい場合などです。

画面の高さまたは幅を変更するには,SET TERMINALコマンドを使用します。このコマンドの一般的な効果は,VT シリーズの端末の場合でもワークステーションの場合でも同じです。

この例では,画面サイズが 80 桁 24 行の省略時の VT100 画面エミュレーション・モードでワークステーション・ウィンドウを使用して,デバッガをすでに起動し,画面モードで使用しているとします。この時点でより大きな画面を使用したい場合,次のコマンドを使用すれば画面の高さとデバッガ・ウィンドウの幅をそれぞれ 35 行と 110 桁に増やすことができます。


DBG> SET TERMINAL/PAGE:35/WIDTH:110

省略時の設定では,すべてのディスプレイが動的になっています。動的なディスプレイでは,SET TERMINALコマンドで画面の高さまたは幅を変更すると,ウィンドウの寸法が比例して調整されます。したがって,SET TERMINAL コマンドを使用した場合は各ディスプレイの相対的な位置が保持されます。DISPLAY コマンドで /[NO]DYNAMIC 修飾子を使用すると,ディスプレイを動的にするかしないかを制御できます。動的でないディスプレイの場合,SET TERMINAL コマンドの入力後にウィンドウ座標が変更されません。その後,ディスプレイを移動したりサイズ変更したりするために DISPLAY, MOVE, EXPAND の各コマンドや各種のキーパッド・キーの組み合わせが使用できます。

デバッガで使用している現在の端末の幅と高さを表示するには,SHOW TERMINAL コマンドを使用します。

デバッガの SET TERMINAL コマンドは,DCL レベルの端末画面サイズには影響を及ぼさないので注意してください。デバッガを終了した時点で,元の画面サイズに戻ります。

7.11 画面に関連した組み込みシンボル

次の組み込みシンボルは,言語式内でディスプレイと画面パラメータを指定する際に使用できます。

7.11.1 画面の高さと幅

組み込みシンボルの %PAGE と %WIDTH は,それぞれ端末画面の現在の高さと幅を戻します。これらのシンボルはウィンドウ指定など,さまざまな式の中で使用できます。たとえば,次のコマンドは画面の中央付近の領域を占めるMIDDLEという名前のウィンドウを定義します。


DBG> SET WINDOW MIDDLE AT(%PAGE/4,%PAGE/2,%WIDTH/4,%WIDTH/2)

7.11.2 ディスプレイ組み込みシンボル

DISPLAY コマンドで特定のディスプレイを参照するたびにディスプレイ・リストが更新され,必要な場合は順序も変更されます。最後に参照したディスプレイは最後にペーストボード上にペーストされるので,ディスプレイ・リストの末尾に置かれます。ディスプレイ・リストは SHOW DISPLAY コマンドを入力すれば表示できます。

ディスプレイ組み込みシンボルを使用すると,ディスプレイをそれらのディスプレイ・リスト内の相対的な位置で指定できます。これらのシンボルは,次に示すとおり,明示的なディスプレイ名ではなくディスプレイ・リスト内の相対的な位置によってディスプレイを参照できます。これらのシンボルは主にキーパッド・キー定義またはコマンド・プロシージャの中で使用します。

ディスプレイ・シンボルはディスプレイ・リストを循環リストとして扱います。したがって,ディスプレイ・シンボルを使用したコマンドを入力して,必要なディスプレイに到達するまでディスプレイ・リスト全体を循環することができます。

%CURDISP 現在のディスプレイ。これがDISPLAYコマンドで参照した最新のディスプレイで,最も隠されることの少ないディスプレイである。
%CURSCROLL 現在のスクロール・ディスプレイ。これがSCROLL, MOVE,およびEXPAN Dの各コマンドとそれに対応するキーパッド・キー(KP2, KP4, KP6,およびKP8)用の省略時のディスプレイである。
%NEXTDISP リスト内で現在のディスプレイの後ろにある次のディスプレイ。次のディスプレイとは最上部のディスプレイに次ぐディスプレイである。ディスプレイ・リストは循環しているので,これはペーストボードの最下部にあるディスプレイで最も隠されることの多いディスプレイである。
%NEXTINST ディスプレイ・リスト内で現在の機械語命令ディスプレイの後ろにある次の機械語命令ディスプレイ。現在の機械語命令ディスプレイとはEXAMINE/INSTRUCTIONコマンドからの出力を受け取るディスプレイである。
%NEXTOUTPUT ディスプレイ・リスト内で現在の出力ディスプレイの後ろにある次の出力ディスプレイ。出力ディスプレイは,まだ他のディスプレイへ出力されていないデバッガ出力を受け取る。
%NEXTSCROLL ディスプレイ・リスト内で現在のスクロール・ディスプレイの後ろにある次のディスプレイ。
%NEXTSOURCE ディスプレイ・リスト内で現在のソース・ディスプレイの後ろにある次のソース・ディスプレイ。現在のソース・ディスプレイはTYPEコマンドおよびEXAMINE/SOURCEコマンドからの出力を受け取るディスプレイである。

7.12 画面の寸法と定義済みウィンドウ

VT シリーズの端末では,画面は 24 行 80 桁または 132 桁で構成されます。ワークステーションでは,画面は高さにおいても幅においてもそれより大きくなります。デバッガは 100 行 255 桁までの画面サイズを収容できます。

デバッガには多くの定義済みウィンドウがあり,画面上でディスプレイの位置を設定するために使用できます。画面の完全な高さと幅の他に,定義済みウィンドウには,次の操作から求められる可能なすべての領域が含まれます。

SHOW WINDOW コマンドは定義済みのすべてのディスプレイ・ウィンドウを識別します。

定義済みウィンドウの名前には次の規則が適用されます。接頭辞の L と R は,それぞれ左ウィンドウと右ウィンドウを表します。他の英字は全画面(FS)または画面の高さ(H:半分,T:3 分の 1,Q:4 分の 1,S:6 分の 1,E:8 分の 1)を表します。末尾の数字は画面の高さの場所(最上部から始まる)を表します。次に例を示します。

次の 4 つのコマンドは,サイズと位置が同一(スクリーンの上半分)であるウィンドウを持つディスプレイを作成します。


DBG> DISPLAY XYZ AT H1 SOURCE
DBG> DISPLAY XYZ AT Q12 SOURCE
DBG> DISPLAY XYZ AT S123 SOURCE
DBG> DISPLAY XYZ AT E1234 SOURCE

省略時の端末画面幅(80桁)の場合,定義済みウィンドウの左右の境界(start-column, column-count)は次のとおりです。

表 7-2 は,24 行という省略時の端末画面の高さに対して定義されている単一セグメント・ディスプレイ・ウィンドウの縦方向の境界(start-line,line-count)を示しています。表 7-2 には,E23(ディスプレイ・ウィンドウ E2 と E3 の組み合わせから作成されたディスプレイ・ウィンドウ)などのように,複数のセグメントで構成されるウィンドウは示されていません。

表 7-2 定義済みウィンドウ
ウィンドウ名 start-line,line-count ウィンドウ位置
FS (1,23) 全画面
H1 (1,11) 上半分
H2 (13,11) 下半分
T1 (1,7) 最上部の3分の1
T2 (9,7) 中央の3分の1
T3 (17,7) 最下部の3分の1
Q1 (1,5) 最上部の4分の1
Q2 (7,5) 2番目の4分の1
Q3 (13,5) 3番目の4分の1
Q4 (19,5) 最下部の4分の1
S1 (1,3) 最上部の6分の1
S2 (5,3) 2番目の6分の1
S3 (9,3) 3番目の6分の1
S4 (13,3) 4番目の6分の1
S5 (17,3) 5番目の6分の1
S6 (21,3) 最下部の6分の1
E1 (1,2) 最上部の8分の1
E2 (4,2) 2番目の8分の1
E3 (7,2) 3番目の8分の1
E4 (10,2) 4番目の8分の1
E5 (13,2) 5番目の8分の1
E6 (16,2) 6番目の8分の1
E7 (19,2) 7番目の8分の1
E8 (22,2) 最下部の8分の1

7.13 各国に対応した画面モード

次のような論理名を定義することにより,画面モードに各国単位の機能を搭載することができます。


前へ 次へ 目次 索引