library home hp.com home products and services support and drivers solutions
cd-rom home
End of Jump to page title
HP OpenVMS Systems
Documentation

Jump to content


HP OpenVMS

HP OpenVMS
デバッガ説明書


前へ 次へ 目次 索引


7.4.4.3 呼び出しスタック上にあるルーチンの命令の表示

SET SCOPE/CURRENT コマンドを使用すると,現在呼び出しスタック上にあるルーチンの命令を表示できます。たとえば,次のコマンドはディスプレイ INST を更新し,現在実行が一時停止しているルーチンの呼び出し元の命令をディスプレイINSTに表示します。


DBG> SET SCOPE/CURRENT 1

命令を表示するための省略時の有効範囲を再設定するには, CANCEL SCOPE コマンドを入力します。このコマンドを入力すると,実行が一時停止されている呼び出しスタック最上部にあるルーチンの命令が表示されます。

7.4.4.4 呼び出しスタック上にあるルーチンのレジスタ値の表示

SET SCOPE/CURRENT コマンドを使用すると,現在呼び出しスタック上にあるルーチンに対応したレジスタ値を表示できます。たとえば,次のコマンドはディスプレイ REG を更新し,現在実行が一時停止しているルーチンの呼び出し元のレジスタ値をディスプレイ REG に表示します。


DBG> SET SCOPE/CURRENT 1

レジスタ値を表示するための省略時の有効範囲を再設定するには, CANCEL SCOPE コマンドを入力します。このコマンドを入力すると,実行が一時停止している呼び出しスタック最上部のルーチンのレジスタ値がディスプレイ REG に表示されます。

7.5 既存のディスプレイの操作

この節では,次の機能の実行方法を説明します。

第 7.7 節 および 第 7.2 節 でも既存のディスプレイを DISPLAY コマンドによって変更するための方法 ( ディスプレイ・ウィンドウおよび表示される情報の種類を変更する方法 ) を詳しく説明しています。

7.5.1 ディスプレイのスクロール

通常,ディスプレイはウィンドウを通して見ることができる以上の行数あるいは,ウィンドウより長い行のテキストを持っています。 SCROLL コマンドを使用すると,ウィンドウの境界を越えて隠れているテキストを見ることができます。PROMPT ディスプレイを除くすべてのディスプレイでスクロールが可能です。

ディスプレイをスクロールさせる最も簡単な方法は,この節の後半で述べるようなキーパッド・キーを使用した方法です。最初に関連コマンドの使用法を説明します。

SCROLL コマンドではディスプレイを明示的に指定できます。しかし,通常はまず現在のスクロール・ディスプレイを選択するために SELECT/SCROLL コマンドを使用します。この結果,そのディスプレイは scroll 属性を持ち,SCROLL コマンドの省略時のディスプレイとなります。その後,そのディスプレイを指定した行数だけ上下に,あるいは指定した桁数だけ左右にスクロールさせるために,SCROLL コマンドをパラメータなしで使用します。スクロールする方向と距離はコマンド修飾子 (/UP:n, /RIGHT:nなど ) で指定します。

次の例では,SELECT コマンドでディスプレイ OUT を現在のスクロール・ディスプレイとして選択してから (/SCROLL は省略時の修飾子なので省略可能 ),SCROLL コマンドによって下 18 行のテキストが表示されるように OUT をスクロールさせています。


DBG> SELECT OUT
DBG> SCROLL/DOWN:18

いくつかの便利な SELECT コマンド行と SCROLL コマンド行が次のようにキーパッド・キーに割り当てられています。キーパッド図については, 付録 A を参照してください。

7.5.2 ディスプレイの表示,非表示,除去,取り消し

DISPLAY コマンドは,ディスプレイを作成および操作するための最も用途の広いコマンドです。このコマンドを最も単純な形式で使用した場合,既存のディスプレイの 1 つがペーストボードの最上部に置かれ,そのディスプレイの現在のウィンドウを通して表示されます。たとえば,次のコマンドはディスプレイINSTをその現在のウィンドウを通して表示します。


DBG> DISPLAY INST

DISPLAY %NEXTDISP コマンドにバインドされている KP9 を押すと,同じことが簡単に行えます。組み込み関数 %NEXTDISP はディスプレイ・リスト内の次のディスプレイを表します。 付録 B に,画面に関連したすべての組み込み関数が示されています。 KP9 を押すたびに,リスト内の次のディスプレイがペーストボード最上部に置かれ,その現在のウィンドウ内に表示されます。

省略時の設定では,ディスプレイ OUT の最上行 ( そのディスプレイを示す ) はディスプレイ SRC の最下行に一致します。SRC がペーストボード最上部にある場合,その最下行は OUT の最上行を隠します。各種のディスプレイをペーストボード最上部に置くために DISPLAY コマンドとそれに対応するキーパッド・キーを使用する場合は,このことに注意してください。

ペーストボードの最下部にあるディスプレイを表示しないためには, DISPLAY/HIDE コマンドを使用します。このコマンドはディスプレイ・リスト内でのそのディスプレイの順番を変更します。

ペーストボードからディスプレイを除去して見えなくするには ( ただし,永久に削除されるわけではない ),DISPLAY/REMOVE コマンドを使用します。除去したディスプレイをペーストボード上に戻すには, DISPLAY コマンドを使用します。

永久にディスプレイを削除するには,CANCEL DISPLAY コマンドを使用します。ディスプレイを再作成するには, 第 7.6 節 で説明するとおり,DISPLAY コマンドを使用します。

PROMPT ディスプレイは表示しなかったり,除去したり,削除したりできないので注意してください。

現在存在しているディスプレイを見るには,SHOW DISPLAY コマンドを使用します。ディスプレイはディスプレイ・リスト上の順序に従ってリストされます。ペーストボードの最上部にあるディスプレイは最後にリストされます。

DISPLAY オプションについての詳しい説明は,オンライン・ヘルプの DISPLAY コマンドの説明を参照してください。また,DISPLAY コマンドでは既存のディスプレイのその他の特性 ( ディスプレイ・ウィンドウと表示される情報の種類 ) を変更できるオプション・パラメータが使用できることを覚えておいてください。これらの方法については, 第 7.7 節 および 第 7.2 節 を参照してください。

7.5.3 ディスプレイの画面内移動

画面内でディスプレイを移動するには,MOVEコマンドを使用します。修飾子 /UP:n, /DOWN:n, /RIGHT:n,および /LEFT:n は,ディスプレイを移動する方向と行数または桁数を指定します。ディスプレイを指定しなかった場合には現在のスクロール・ディスプレイが移動します。

ディスプレイを移動する最も簡単な方法は,次のようなキーパッド・キーを使用した方法です。

7.5.4 ディスプレイの拡大または縮小

ディスプレイを拡大または縮小するには EXPAND コマンドを使用します。修飾子 /UP:n, /DOWN:n, /RIGHT:n,および /LEFT:n は,ディスプレイを拡大または縮小する方向と行数または桁数を指定します。ディスプレイを縮小するには,これらの修飾子に負の整数値を指定します。ディスプレイを指定しなかった場合には現在のスクロール・ディスプレイが拡大または縮小されます。

ディスプレイを拡大または縮小する最も簡単な方法は,次のようなキーパッド・キーを使用した方法です。

PROMPT ディスプレイは水平方向には縮小,拡大できません。また,垂直方向の場合,2行より少ない行数に縮小することはできません。

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

新しい画面ディスプレイを作成するには,DISPLAY コマンドを使用します。基本的な構文は次のとおりです。


DISPLAY display-name [AT window-spec] [display-kind] 

ディスプレイ名は,すでに何かのディスプレイに付けてある名前以外であればどんな名前でもかまいません。既存のすべてのディスプレイを表示するには SHOW DISPLAY コマンドを使用します。新しいディスプレイを作成すると,そのディスプレイはペーストボードの最上部で,既存のディスプレイ ( 非表示にはできない定義済み PROMPT ディスプレイは除く ) の最上部に置かれます。ディスプレイ名はディスプレイ・ウィンドウの左上隅にディスプレイされます。

第 7.7 節 では,ウィンドウを指定するためのオプションを説明します。ウィンドウ指定を提供しなかった場合,そのディスプレイは画面の上半分または下半分に配置されます。この位置は新しいディスプレイを作成するたびに交互に変わります。

第 7.2 節 では,ディスプレイ対象を指定するためのオプションを説明します。ディスプレイ対象を指定しなかった場合は出力ディスプレイが作成されます。

たとえば,次のコマンドは OUT2 という名前の新しい出力ディスプレイを作成します。OUT2 に対応するウィンドウは画面の上半分または下半分となります。


DBG> DISPLAY OUT2

次のコマンドは EXAM_XY という名前の新しい DO ディスプレイを作成し,画面右の 3 番目の 4 分の 1(RQ3) に置きます。このディスプレイは変数Xと変数Yの現在の値を示し,デバッガがプログラムから制御を受け取るたびに更新されます。


DBG> DISPLAY EXAM_XY AT RQ3 DO (EXAMINE X,Y)

詳しい説明については,DISPLAY コマンドの説明を参照してください。

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

ディスプレイ・ウィンドウは画面の任意の長方形部分を占めることができます。

ディスプレイ・ウィンドウは,DISPLAY コマンドでディスプレイを作成するときに指定できます。また,DISPLAY コマンドで新しいウィンドウを指定することによって,ディスプレイに現在対応するウィンドウを変更することもできます。ウィンドウを指定する場合,次のオプションがあります。

これらの各方法については次の各項で説明します。ウィンドウを指定する場合,PROMPT ディスプレイが常にディスプレイ・ペーストボードの最上部に残り,したがって同じ画面領域を共有する別のディスプレイは一部が隠されることに注意してください。

ディスプレイ・ウィンドウは,指定した方法に関係なく動的なものです。したがって,SET TERMINAL コマンドを使用して画面の高さまたは幅を変更した場合,ディスプレイに対応したウィンドウは新しい画面の高さまたは幅に比例して拡大または縮小されます。

7.7.1 行数と桁数によるウィンドウの指定

ウィンドウ指定の一般的な形式は, (start-line,line-count[,start-column,column-count]) です。たとえば,次のコマンドは出力ディスプレイCALLSを作成し,そのウィンドウは高さが7行で 10 行目から始まり,幅が 30 桁で 50 桁目から始まることを指定します。


DBG> DISPLAY CALLS AT (10,7,50,30)

start-columncolumn-count も指定しなかった場合,ウィンドウは画面いっぱいの幅になります。

7.7.2 定義済みウィンドウの使用

デバッガは多数の定義済みウィンドウを備えています。これらのウィンドウには,行数と桁数を指定しなくても DISPLAY コマンドで使用できる短いシンボリック名が付いています。たとえば,次のコマンドは出力ディスプレイ ZIP を作成し,そのウィンドウを RH1 ( 画面の右上半分 ) とすることを指定します。


DBG> DISPLAY ZIP AT RH1

SHOW WINDOW コマンドは,ユーザが SET WINDOW コマンドで作成したウィンドウ定義だけでなく,すべての定義済みウィンドウ定義も表示します。

7.7.3 新しいウィンドウ定義の作成

ほとんどの場合,定義済みウィンドウだけでも十分ですが, SET WINDOW コマンドで新しいウィンドウ定義を作成することもできます。このコマンドは次の構文をとり,ウィンドウ名とウィンドウ指定とを対応づけます。


SET WINDOW window-name AT (start-line,line-count[, 
start-column,column-count]) 

ウィンドウ定義の作成後は,DISPLAY コマンドの中に定義済みウィンドウと同様にその名前を使用するだけです。次の例ではウィンドウ定義 MIDDLE が設定されます。その後,この定義を使用してディスプレイ OUT をウィンドウ MIDDLE を通して表示します。


DBG> SET WINDOW MIDDLE AT (9,4,30,20)
DBG> DISPLAY OUT AT MIDDLE

現在のすべてのウィンドウ定義を表示するには,SHOW WINDOW コマンドを使用します。ウィンドウ定義を削除するには,CANCEL WINDOW コマンドを使用します。

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

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


前へ 次へ 目次 索引