Compaq OpenVMS
デバッガ・コマンド・ディクショナリ


前へ 目次 索引



STOP

指定されたプロセスのうち,実行中のプロセスすべてに割り込みます。

形式

STOP [process-spec[,...]


パラメータ

process-spec

このパラメータは,停止するプロセス・セットを指定します。省略時の設定は現在のプロセス・セットです。以下のいずれかの形式を使用します。

[%PROCESS_NAME]process-name スペースや小文字を含まないプロセス名。プロセス名にはワイルドカード文字(*)を含めることができる。
[%PROCESS_NAME] "process-name" スペースまたは小文字を含むプロセス名。二重引用符(")の代わりに,一重引用符を(')使用することもできる。
%PROCESS_PIDprocess_id プロセス識別子(PID,16 進数)。
[%PROCESS_NUMBER]process-number
(または %PROCprocess-number)
デバッガの制御下に入ったときにプロセスに割り当てられた番号。新しい番号は,1 から順番に各プロセスに割り当てられる。EXIT コマンドまたは QUIT コマンドによってプロセスが終了しても,そのデバッグ・セッション中はその番号は再割り当てできる。プロセス番号は SHOW PROCESS コマンドの実行で表示される。プロセスは,組み込みシンボル %PREVIOUS_PROCESS および %NEXT_PROCESS によってインデックスづけできるように,循環リスト内に順序づけされる。
process-group-name DEFINE/PROCESS_GROUP コマンドで定義された,プロセスのグループを表すシンボル。
%NEXT_PROCESS デバッガの循環プロセス・リスト中で可視プロセスの次のプロセス。
%PREVIOUS_PROCESS デバッガの循環プロセス・リスト中で可視プロセスの前のプロセス。
%VISIBLE_PROCESS シンボル,レジスタ値,ルーチン呼び出し,ブレークポイントなどの検索時に現在のコンテキストになっているスタック,レジスタ・セット,およびイメージを持つプロセス。

また,アスタリスク(*)のワイルドカード文字を使用して,すべてのプロセスを指定することができます。


説明

STOP コマンドは指定されたプロセスに割り込みます。STOP コマンドを NOWAIT モードで使用して,実行中のプロセスを停止することができます。

#1

all> SHOW PROCESS
 Number  Name          State            Current PC 
     1 DBGK$$2727282C  break    SERVER\main\%LINE 18834 
     2 USER1_2         running          not available 
*    3 USER1_3         running          not available 
all> CLIENTS> STOP
all> show process 
 Number  Name          State            Current PC 
     1 DBGK$$2727282C  break    SERVER\main\%LINE 18834 
     2 USER1_2         interrupted   0FFFFFFFF800F7A20 
*    3 USER1_3         interrupted   0FFFFFFFF800F7A20 
all> 

このコマンド・シーケンスは,まずすべてのプロセスを表示した後に,プロセス・セット・クライアントの中のプロセスを停止します。最後の SHOW PROCESS コマンドは新しいプロセス状態を示しています。


SYMBOLIZE

可能な場合,メモリ・アドレスをシンボリック表現に変換します。

形式

SYMBOLIZE address-expression[,...]


パラメータ

address-expression

シンボル化の対象となるアドレス式を指定します。ワイルドカード文字のアスタリスク(*)は指定できません。

説明

アドレスが静的アドレスの場合,それは直前のシンボル名にオフセットを加えたものとしてシンボル化されます。アドレスがコード・アドレスでもあり,そのアドレスに該当する行番号を見つけられる場合,その行番号はシンボル化の対象となります。

アドレスがレジスタ・アドレスの場合,デバッガはそのレジスタに関係する設定されているすべてのモジュールの中のすべてのシンボルを表示します。そのようなシンボルそれぞれの完全パス名が表示されます。レジスタ名そのもの(たとえば,"%R5")も表示されます。

アドレスが,設定されているモジュール内のルーチンの呼び出しフレームにある呼び出しスタック記憶位置である場合,デバッガはそのルーチン内のシンボルで,フレーム・ポインタ(FP)またはスタック・ポインタ(SP)に相対するアドレスを持つシンボルをすべて検索します。直前のシンボル名にオフセットを加えたものがそのアドレスのシンボル化として表示されます。アドレス指定が複雑すぎるシンボルは無視されます。

Alpha プロセッサでは,SYMBOLIZE procedure-code-addressコマンドと SYMBOLIZE procedure-descriptor-addressコマンドは両方ともこれらのアドレスで指定されるルーチン,エントリ・ポイントまたは Ada パッケージのパス名を表示します。

デバッガがアドレスのシンボル化を行えないと,メッセージが表示されます。

関連コマンド

EVALUATE/ADDRESS
SET MODE [NO]LINE
SET MODE [NO]SYMBOLIC
(SET,SHOW,CANCEL)MODULE
SHOW SYMBOL

#1

DBG> SYMBOLIZE %R5
address PROG\%R5: 
    PROG\X
DBG>

この例は,PROG ルーチンのローカル変数 X が R5 レジスタにあることを示します。

#2

DBG> SYMBOLIZE %HEX 27C9E3
address 0027C9E3: 
    MOD5\X
DBG>

このコマンドは,整数リテラル 27C9E3 を 16 進数値として扱い,可能であればそのアドレスをシンボリック表現に変換するようにデバッガに指示します。アドレスはMOD5 モジュールのシンボル X に変換されます。


SYNCHRONIZE VECTOR_MODE(VAX のみ)

スカラ型プロセッサとベクタ型プロセッサ間で即座に同期をとるように強制します。

VAX のベクタ化されたプログラムの場合に指定できます。


形式

SYNCHRONIZE VECTOR_MODE


説明

SYNCHRONIZE VECTOR_MODE コマンドは SYNC 命令と MSYNC 命令を実行することにより,強制的にスカラ型プロセッサとベクタ型プロセッサ間で即座に同期化が行われるようにします。このコマンドの作用は次のとおりです。

SYNCHRONIZE VECTOR_MODE コマンドを入力することは,実行が中断されていたプログラム内の記憶位置でSYNC 命令と MSYNC 命令を実行することと同じです。

省略時の設定では,デバッガはプログラムの実行中にスカラ型プロセッサとベクタ型プロセッサ間での同期化を強制しません(SET VECTOR_MODE NOSYNCHRONIZED)。そのような同期化を強制するには,SET VECTOR_MODE SYNCHRONIZED コマンドを使用してください。

関連コマンド

SET VECTOR_MODE [NO]SYNCHRONIZED(VAX のみ)
SHOW VECTOR_MODE(VAX のみ)

#1

DBG> SYNCHRONIZE VECTOR_MODE
%DEBUG-I-SYNCREPCOM, Synchronize reporting complete

このコマンドはスカラ型プロセッサとベクタ型プロセッサ間で即座に同期化をとるように強制します。この例では,診断メッセージは同期化操作が完了したことと,保留中だったすべてのベクタ例外が許可され,通知されたことを表しています。

#2

DBG> STEP   (1)
stepped to .MAIN.\SUB\%LINE 99 
    99:         VVDIVD  V1,V0,V2
DBG> STEP   (2)
stepped to .MAIN.\SUB\%LINE 100 
   100:         CLRL    R0
DBG> EXAMINE/FLOAT %V2   (3)
0\%V2 
    [0]:  13.53400 
    [1]:  Reserved operand, encoded as floating divide by zero 
    [2]:  247.2450
    ...
DBG> SYNCHRONIZE VECTOR_MODE   (4)
%SYSTEM-F-VARITH, vector arithmetic fault, summary=00000002, 
                  mask=00000004, PC=000002E1, PSL=03C00010 
break on unhandled exception preceding .MAIN.\SUB\%LINE 100
   100:         CLRL    R0)
DBG>
 

次の番号は上の例の番号に対応しています。

  1. この STEP コマンドは VVDIVD 命令を実行する直前に 99 行目でプログラム実行を中断する。この例では,VVDIVD 命令が浮動小数点のゼロ除算例外を起動すると想定する。

  2. この STEP コマンドは VVDIVD 命令を実行する。ただし,例外はプログラムの実行中のこの時点までは許可されない。

  3. EXAMINE/FLOAT コマンドはデスティネーション・レジスタ V2 の要素 1 にデコードされた例外メッセージを表示する。これは浮動小数点のゼロ除算例外が起動され,実行要求を保留中であることを確認するものである。

  4. SYNCHRONIZE VECTOR_MODE コマンドは保留中のベクタ例外の実行要求を即座に行うよう強制する。<endsection>


TYPE

ソース・コードの行を表示します。

形式

TYPE [[module-name\]line-number[:line-number]
[,[module-name\]line-number[:line-number][,...]]]


パラメータ

module-name

表示の対象となるソース行を含むモジュールを指定します。行番号といっしょにモジュール名を指定する場合には,標準のパス名表記を使用します。つまり,モジュール名と行番号の間に円記号(\)を挿入してください。

モジュール名を指定しないと,デバッガは表示の対象となるソース行を見つけるために現在の有効範囲を使用します(現在の有効範囲は前回の SET SCOPE コマンドで設定されます。SET SCOPE コマンドを入力していなかった場合には,PC 範囲が使用されます)。SET SCOPE コマンドで有効範囲検索リストを指定すると,デバッガはソース行を検索するために最初に指定された有効範囲に対応するモジュールだけを検索します。

line-number

コンパイラ生成行番号(1 つまたは複数のソース言語文にラベルを付けるために使用される番号)を指定します。

行番号を 1 つだけ指定すると,デバッガはその行番号に対応するソース・コードを表示します。

1 つ 1 つをコンマで区切ることにより行番号のリストを指定すると,デバッガは指定された行番号のそれぞれに対応するソース・コードを表示します。

コロン(:)で範囲内の開始行番号と終了行番号を区切り,行番号の範囲を指定すると,デバッガは指定範囲の行番号に対応するソース・コードを表示します。

1 で始まり,モジュールの最大行番号以上の数字で終わる行番号の範囲を指定することにより,モジュールのソース行全部を表示できます。

ソース行を 1 行表示したあとは,行番号を指定しないで TYPE コマンドを入力する(つまり,TYPE を入力したあと Return キーを押す)ことにより,同じモジュール内の次の行を表示できます。そのあとは,この手順を繰り返すこと,つまり,ソース・プログラムを一度に 1 行ずつ読むことにより,次の行とそれに続く行を表示できます。


説明

TYPE コマンドは指定された行番号に対応するソース・コードの行を表示します。ソース・コードの行を示すためにデバッガが使用する行番号はコンパイラによって作成されます。行番号はコンパイラ生成リストと画面モードのソース表示に示されます。

TYPE コマンドでモジュール名を指定する場合,モジュールを設定しなければなりません。特定のモジュールが設定されているかを判断するには,SHOW MODULE コマンドを使用します。次に必要であれば,SET MODULE コマンドを使用します。

画面モードでは,TYPE コマンドの出力は出力表示でも DO 表示でもなく,現在のソース表示に出力されます。ソース表示は指定された行とその前後の行で表示ウィンドウに収まるだけの行を示します。

関連コマンド

EXAMINE/SOURCE
SET(BREAK,TRACE,WATCH)/[NO]SOURCE
SET MODE [NO]SCREEN
(SET,SHOW,CANCEL)SCOPE
SET STEP [NO]SOURCE
STEP/[NO]SOURCE

#1

DBG> TYPE 160
module COBOLTEST 
   160: START-IT-PARA.
DBG> TYPE
module COBOLTEST 
   161:         MOVE SC1 TO ES0.
DBG>

この例では,最初の TYPE コマンドは 160 行目を表示します。このとき,その行番号を含むモジュールを検索するために現在の有効範囲を使用します。2 番目のTYPE コマンドは行番号を指定せずに入力されており,同じモジュール内の次の行を表示します。

#2

DBG> TYPE 160:163
module COBOLTEST 
   160: START-IT-PARA. 
   161:         MOVE SC1 TO ES0. 
   162:         DISPLAY ES0. 
   163:         MOVE SC1 TO ES1.
DBG>

このコマンドはモジュールを検索するために現在の有効範囲を使用し,160 行目から 163 行目までを表示します。

#3

DBG> TYPE SCREEN_IO\7,22:24

このコマンドはSCREEN_IO モジュール内にある 7 行目と 22 行目から 24 行目までを表示します。


WAIT

デバッガは,ターゲット・プロセスが停止するのを待ってから,次のコマンドの入力を求めるプロンプトを表示するようになります。

形式

WAIT


説明

マルチプロセス・プログラムをデバッグしているときに WAIT コマンドを入力すると,デバッガは前のコマンドで指定されたすべてのプロセスが実行を完了するのを待ってから,新たなコマンドを受け付けて実行するためのプロンプトを表示するようになります。

関連コマンド

STOP
SET MODE [NO]INTERRUPT
SET MODE [NO]WAIT


all> 2,3> GO;WAIT
processes 2,3 
  break at CLIENT\main\%LINE 18814 
      18814:      status = sys$qiow(EFN$C_ENF,  mbxchan, 
                        IO$_READVBLKIO$M_WRITERCHECK, myiosb)
process 1 
  break at SERVER\main\%LINE 18834 
      18834:             if((myiosb.iosb$w_status ==  
                        SS$_NOREADER)&&(pos_status != -1))
all>
 

このコマンド・シーケンスは,ターゲット・プロセス(この例では 2 と 3)を実行します。その後デバッガは,両方のプロセスがブレークポイントに達するのを待ってから,次のコマンドの入力を求めるプロンプトを表示します。


WHILE

指定した言語式(ブール式)が真と評価されているときに,一連のコマンドを実行します。

形式

WHILE Boolean-expression DO(command[;...])


パラメータ

Boolean-expression

現在設定されている言語でブール値(真または偽)と評価される言語式を指定します。

command

デバッガ・コマンドを指定します。複数のコマンドを指定する場合には,それぞれをセミコロン(;)で区切ってください。デバッガは,実行ごとにコマンド内のすべての式の構文をチェックしてから,それらを評価します。

説明

WHILE コマンドは現在の言語でブール式を評価します。値が真の場合には,DO 句のコマンド・リストが実行されます。すると,WHILE コマンドは手順を繰り返し,ブール式が偽と評価されるまでその式を再評価し,コマンド・リストを実行します。

ブール式が偽の場合,WHILE コマンドは終了します。

関連コマンド

EXITLOOP
FOR
REPEAT


DBG> WHILE(X .EQ. 0)DO(STEP/SILENT)

このコマンドは,X が 0 ではなくなるまでプログラム内の命令をステップ実行していくようデバッガに指示します(Fortran の例)。


前へ 索引 目次