日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
画面モードは,OpenVMS デバッガのコマンド行インタフェースの拡張機能であり,このモードでは, HP DECwindows Motif for OpenVMS ユーザ・インタフェースの場合と同じ方法で ( 第 3 部 を参照),デバッグ・セッションに関する個別のデータ・グループを同時に表示できます。たとえば,画面の一部分にソース・コードを表示し,別の部分にレジスタの内容を表示し,さらに別の部分にデバッガからの出力を表示できます。
画面モードを起動するには,キーパッドの PF3 を押します ( または SET MODE SCREEN コマンドを入力します )。コマンド行インタフェースによるデバッグに戻るには,PF1 PF3 を押します ( または SET MODE NOSCREEN コマンドを入力します )。
注意 デバッガに対する DECWindows Motif インタフェースの内部から画面モードを開始することはできません。 |
画面モード出力は,VT52 以上のVTシリーズ端末,および VWS を使用しているワークステーションの場合に最適です。特に,ワークステーションの画面が大きいほど,多数の画面をさまざまな目的に使用するのに適しています。
本章には次の内容が含まれています。
画面モード・コマンドの多くはキーパッド・キーにバインドされています。キー定義については, 付録 A を参照してください。
注意 本章では,1 つまたは複数のプロセスで実行されるプログラムに共通した情報を提供します。その他のマルチプロセス・プログラム固有の情報については, 第 15 章 を参照してください。 |
7.1 概念と用語 |
ディスプレイ とはテキスト行のまとまりのことです。テキストには,ソース・ファイルに入っている行,アセンブリ言語の命令,レジスタに入っている値,ユーザからデバッガへの入力,デバッガ出力,またはプログラム入出力 (I/O) などがあります。
ディスプレイは ディスプレイ・ウィンドウ を通して参照します。ウィンドウは画面の任意の長方形の領域を占有できます。ディスプレイ・ウィンドウはディスプレイそのものより小さいのが普通なので,ディスプレイ・テキストを越えてウィンドウを上下左右にスクロールさせ,ディスプレイの任意の部分を参照することができます。
図 7-1 は,3 つのディスプレイ・ウィンドウのある画面モードの例です。各ディスプレイの名前 (SRC, OUT,および PROMPT) は,それぞれのウィンドウの左上隅にあります。これらはディスプレイ自体のタグとして機能するだけでなく,あとでコマンドで参照するための名前としても機能します。
図 7-1 省略時の画面モード・ディスプレイ構成
図 7-1 は,画面モードを最初に起動したときに設定される省略時のディスプレイ構成です。SRC, OUT,および PROMPT は,画面モードに入ったときに省略時の設定としてデバッガが提供する 3 つの 定義済みディスプレイ ( 第 7.4 節 を参照 ) です。追加のディスプレイを作成するのと同様にこれらのディスプレイの構成を変更することができます。
SRC,OUT,および PROMPT の各ディスプレイには次の基本的な特性があります。
概念上では,ディスプレイは ペーストボード 上の場合と同じように画面上に配置されます。あるコマンドによって参照された最新のディスプレイは,省略時の設定ではペーストボードの最上部に置かれます。したがって,ウィンドウの記憶位置によって,最後に参照したディスプレイが他のディスプレイに重なるか他のディスプレイを隠すかが決まります ( ペーストボード上の場合と同じ )。
デバッガは,ディスプレイをペーストする順序である ディスプレイ・リスト を保持します。いくつかのキーパッド・キー定義は,現在ペーストボード上にあるディスプレイの間を循環するために,このディスプレイ・リストを使用します。
ディスプレイはすべて何らかの ディスプレイ対象 に所属します ( 第 7.2 節 を参照 )。ディスプレイがどのような種類の情報 ( たとえば,ソース・コード,アセンブリ言語命令,各種のデバッガ出力など ) を取り込んで表示できるかは,このディスプレイ対象によって決まります。またディスプレイ対象によって,ディスプレイの内容が生成される方法も決まります。
ディスプレイの内容は2つの方法で生成されます。
ディスプレイへ割り当てた属性の名前は,ディスプレイ名の右側に小文字で表示されます。たとえば 図 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 は他のディスプレイへ出力されないデバッガ出力をすべて収集するようになります。次に例を示します。
出力ディスプレイに割り当てられるメモリ・バッファの省略時のサイズは 64 行です。メモリ・バッファが満杯になると,最も古い行が破棄され,次のテキストを表示するための空間が確保されます。バッファ・サイズを変更するには,DISPLAY/SIZE コマンドを使用します。
目次 | 索引 |
|