Compaq OpenVMS
デバッガ説明書


前へ 次へ 目次 索引


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

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

たとえば,次のコマンドは DO ディスプレイの CALLS をウィンドウ Q3 に作成します。デバッガがプログラムから制御を受け取るたびに 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 コマンドを使用します。

7.2.5 レジスタ・ディスプレイ対象

レジスタ・ディスプレイは自動的に更新されるディスプレイであり,プロセッサ・レジスタの現在の値が 16 進形式で表示され,また,表示できる数だけ呼び出しスタックの値も表示されます。

表示されるレジスタ値は,現在実行が中断されているルーチンの値です。デバッガに制御が渡されると,必ず値が更新されます。変更された値は強調表示されます。

VAX プロセッサでは,定義済みディスプレイ REG には,汎用レジスタ R0〜R15 と PSL の内容が 16 進形式で格納されますが,ベクタ・レジスタは格納されません。ベクタ・レジスタまたはベクタ制御レジスタに格納されているデータを画面モードで表示するには,DO ディスプレイを使用します(第 7.2.1 項 を参照)。

VAX プロセッサでは,定義済みディスプレイ IREG には定義済みディスプレイ REG と同じ情報が格納されますが,ディスプレイ・ウィンドウの構成が異なります。IREG ディスプレイが VAX で提供されるのは,VAX デバッグ・アプリケーションと Alpha デバッグ・アプリケーションの間でデバッガの .COM ファイルと .INI ファイルを簡単に移植できるようにするためです。

Alpha プロセッサでは,定義済みディスプレイ REG には,汎用レジスタ R0〜R28,FP(R29),SP(R30),R31,PC,PS,浮動小数点レジスタ F0〜F31,FPCR,SFPCR が 16 進形式で格納され,また,表示できる数だけ呼び出しスタックの値も格納されます。

Alpha プロセッサでは,定義済みディスプレイ IREG には,汎用レジスタ R0〜R28,FP,およびウィンドウに表示できる数だけ,呼び出しスタックの値が 16 進形式で格納されます。

Alpha プロセッサでは,定義済みディスプレイ FREG には,浮動小数点レジスタ F0〜F31,FPCR,SFPCR が浮動小数点形式で格納され,また,ウィンドウに表示できる数だけ,呼び出しスタックの値が 16 進形式で格納されます。

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

7.2.6 SOURCE ディスプレイ対象

ソース・ディスプレイは,あるモジュールのソース・コードが取得できる場合に,そのソース・コード内の TYPE コマンドまたは EXAMINE/SOURCE コマンドの出力を表示します。ソース行番号は左側の欄に表示されます。コマンドの出力であるソース行はディスプレイの中央に置かれ,左側の欄の矢印によって示されます。TYPE コマンドで行の範囲を指定した場合は,それらの行がディスプレイの中央に置かれますが,矢印は表示されません。

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

次の例では,DISPLAY コマンドでソース・ディスプレイ SRC2 を Q2 に作成します。その後,SELECT/SOURCE コマンドで SRC2 を現在のソース・ディスプレイとして選択します。TYPE 34 コマンドを実行した時点で,ウィンドウ RH1 にはデバッグ中のモジュールの行 34 の前後にあるソース・コードが表示されます。矢印はディスプレイの中央に置かれた行 34 を指します。


DBG> DISPLAY SRC2 AT Q2 SOURCE
DBG> SELECT/SOURCE SRC2
DBG> TYPE 34

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

ソース・ディスプレイのメモリ・バッファの省略時のサイズは 64 行です。ソース・ディスプレイのメモリ・バッファはページングされるため,ソース・モジュール全体またはルーチン全体で前後にスクロールします。バッファ・サイズを変更して性能を向上するには,DISPLAY/SIZE コマンドを使用します。

7.2.7 SOURCE(コマンド)ディスプレイ対象

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

たとえば,次のコマンドはソース・ディスプレイSRC3をウィンドウRS45に作成します。デバッガが制御を受け取るたびに,組み込みコマンドEXAMINE/SOURCE .%SOURCE_SCOPE\%PCが実行され,ディスプレイが更新されます。


DBG> DISPLAY SRC3 AT RS45 SOURCE(EX/SOURCE .%SOURCE_SCOPE\%PC)

このコマンドは定義済みディスプレイSRCに似た機能を持つディスプレイを作成します。組み込みEXAMINE/SOURCEコマンドは現在の有効範囲内で現在のPC値に対するソース行を表示します(第 7.4.1 項 を参照)。

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

ソース・ディスプレイのメモリ・バッフアの省略時のサイズは 64 行です。自動的に更新されるソース・ディスプレイのメモリ・バッファはページングされるため,ソース・モジュール全体またはルーチン全体で前後にスクロールできます。バッファ・サイズを変更して性能を向上するには,DISPLAY/SIZE コマンドを使用します。

7.2.8 PROGRAMディスプレイ対象

プログラム・ディスプレイには,デバッグされるプログラムの出力が格納されます。定義済み PROMPT ディスプレイはプログラム・ディスプレイに属し,この種類で使用できる唯一のディスプレイです。プログラム・ディスプレイとして新しいディスプレイを作成することはできません。

混乱を避けるため,PROMPTディスプレイにはいくつかの制限事項があります(第 7.4.3 項 を参照)。

7.3 ディスプレイ属性の割り当て

画面モードでは,ユーザが会話形式で入力したコマンドの出力は,その出力の種類および各種のディスプレイへ割り当てたディスプレイ属性に応じて各種のディスプレイに出力されます。たとえば,デバッガの診断メッセージはerror属性を持つディスプレイ(現在のエラー・ディスプレイ)へ出力されます。ディスプレイへ1つまたは複数の属性を割り当てることにより,異なる種類の情報を混合したり分離したりできます。

属性には次の名前が付いています。

error
input
instruction
output
program
prompt
scroll
source

ディスプレイに属性を割り当てた場合,その属性の名前がウィンドウ最上部の境界上に小文字でディスプレイ名の右側に表示されます。scroll 属性はデバッガ出力に影響を及ぼすことはありませんが,SCROLL, MOVE, EXPAND の各コマンドの省略時のディスプレイを制御するために使用されます。

省略時の設定では,定義済みディスプレイに次のような属性が割り当てられます。

ディスプレイに属性を割り当てるには,属性と同じ名前の修飾子を指定した SELECT コマンドを使用します。次の例では,DISPLAY コマンドで出力ディスプレイ ZIP を作成します。その後,SELECT/OUTPUT コマンドで ZIP を現在の出力ディスプレイ(output 属性を持つディスプレイ)として選択します。後者のコマンドを実行した後,"output" という語は定義済み出力ディスプレイ OUT の最上部境界から消え,ディスプレイ ZIP 上に現れます。また,それ以前に OUT へ出力されていたすべてのデバッガ・ディスプレイが ZIP へ出力されるようになります。


DBG> DISPLAY ZIP OUTPUT
DBG> SELECT/OUTPUT ZIP

特定の属性は,ある決まったディスプレイ対象にだけ割り当てることができます。次のリストは SELECT コマンドの各修飾子とその効果,およびその属性を割り当てることができるディスプレイ対象を示したものです。

SELECT
修飾子
ディスプレイ対象への適応 説明
/ERROR 出力
プロンプト
指定した表示を現在のエラー・ディスプレイとして選択する。これ以後のデバッガの診断メッセージは,すべてそのディスプレイへ出力される。指定するディスプレイは出力ディスプレイか PROMPT ディスプレイでなければならない。ディスプレイを指定しなかった場合は,PROMPT ディスプレイが現在のエラー・ディスプレイとして選択される。
/INPUT 出力 指定したディスプレイを現在の入力ディスプレイとして選択する。これ以後のデバッガ入力は,すべてそのディスプレイ内にエコーバックされる。指定するディスプレイは出力ディスプレイでなければならない。ディスプレイを指定しなかった場合は現在の入力ディスプレイが選択解除され,デバッガ入力はどのディスプレイにもエコーバックされなくなる。
/INSTRUCTION 命令 指定したディスプレイを現在の機械語命令ディスプレイとして選択する。これ以後の EXAMINE/INSTRUCTION コマンドの出力は,すべてそのディスプレイへ出力される。指定するディスプレイは機械語命令ディスプレイでなければならない。キーパッド・キー・シーケンス PF4 COMMA は,ディスプレイ・リスト内の次の機械語命令ディスプレイを現在の機械語命令ディスプレイとして選択する。ディスプレイを指定しなかった場合は現在の機械語命令ディスプレイが選択解除され,どのディスプレイも instruction 属性を持たなくなる。
/OUTPUT 出力
プロンプト
指定したディスプレイを現在の出力ディスプレイとして選択する。これ以後のデバッガ出力は,すべてそのディスプレイへ出力される。ただし,特定の種類の出力が別のディスプレイへ出力される場合(たとえば,現在のエラー・ディスプレイへ出力される診断メッセージなど)は除く。指定するディスプレイは出力ディスプレイか PROMPT ディスプレイでなければならない。キーパッド・キー・シーケンス PF1 KP3 は,ディスプレイ・リスト内の次の出力ディスプレイを現在の出力ディスプレイとして選択する。ディスプレイを指定しなかった場合は,PRO MPT ディスプレイが現在の出力ディスプレイとして選択される。
/PROGRAM プロンプト 指定したディスプレイを現在のプログラム・ディスプレイとして選択する。これ以後のプログラム入出力(I/O)は強制的にそのディスプレイで行われる。現在,PROM PT ディスプレイだけが指定できる。ディスプレイを指定しなかった場合は現在のプログラム・ディスプレイが選択解除され,プログラムの入出力がPROMPTディスプレイへ強制的に送られることはなくなる。
/PROMPT プロンプト 指定したディスプレイを現在のプロンプト・ディスプレイとして選択し,デバッガはそのディスプレイ内に入力用のプロンプトを表示する。現在,PROMPT ディスプレイだけが指定できる。PROMPT ディスプレイを選択解除することはできない。
/SCROLL すべて 指定したディスプレイを現在のスクロール・ディスプレイとして選択する。そのディスプレイは,それ以後の SCROLL, MOVE, EXPAND の各コマンド用の省略時のディスプレイになる。ユーザはどのディスプレイでも指定できる。ただし,PROMPT ディスプレイはスクロールしない。SELECT コマンドで修飾子を指定しなかった場合は,この /SCROLL 修飾子が省略時の設定になる。キー KP3 は,ディスプレイ・リスト内で現在のスクロール・ディスプレイの後ろにある次のスクロール・ディスプレイを現在のスクロール・ディスプレイとして選択する。ディスプレイを指定しなかった場合は現在のスクロール・ディスプレイが選択解除され,どのディスプレイも scroll 属性を持たなくなる。
/SOURCE ソース 指定したディスプレイを現在のソース・ディスプレイとして選択する。それ以後のすべての TYPE コマンドまたは EXAMINE/SOURCE コマンドの出力は,そのディスプレイへ出力される。指定するディスプレイはソース・ディスプレイでなければならない。キーパッド・キー・シーケンス PF4 KP3 は,ディスプレイ・リスト内の次のソース・ディスプレイを現在のソース・ディスプレイとして選択する。ディスプレイを指定しなかった場合は現在のソース・ディスプレイが選択解除され,どのディスプレイも source 属性を持たなくなる。

上記の表に示した制限事項に従って,ディスプレイはいくつかの属性を持つことができます。前に述べた例では,ZIPは現在の出力ディスプレイとして選択されました。次の例では,ZIP をさらに現在の入力ディスプレイ,エラー・ディスプレイ,およびスクロール・ディスプレイとして選択します。これらのコマンドの実行後は,デバッガの入出力(I/O)と診断は発生した順に正しく ZIP 内に記録され,ZIPが現在のスクロール・ディスプレイになります。


DBG> SELECT/INPUT/ERROR/SCROLL ZIP

ディスプレイ属性のそれぞれに対して現在選択されているディスプレイを示すには,SHOW SELECT コマンドを使用します。


前へ 次へ 目次 索引