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
デバッガ・コマンド・ディクショナリ


前へ 次へ 目次 索引


注意

Alpha プロセッサでは,ルーチン呼び出しによってループを含むソース行で実行が中断されると,STEP/OVER は呼び出されたルーチンにステップします。次のプログラム文にステップするには,その文に一時的なブレークポイントを設定し,GO と入力します。

/RETURN

実行が現在中断されているルーチンをその復帰命令まで (つまり,制御を呼び出し元ルーチンに戻す直前のポイントに至るまで) 実行します。この結果,復帰命令がルーチンの呼び出しフレームを呼び出しスタックから削除する前にローカル環境をチェックできます (たとえば,ローカル変数の値を獲得できます)。STEP/RETURN はSET BREAK/TEMPORARY/RETURN;GO と同じ働きです。

STEP/RETURN n は呼び出しスタックの n レベルまでプログラムを実行します。

/SEMANTIC_EVENT

(Alpha のみ) プログラムを次のセマンティック・イベントに実行します。

STEP/SEMANTIC_EVENTは,デバッグの最適化されたコードを簡素化します (説明の項を参照)。

/SHARE (省略時の設定)

/NOSHARE

前回の SET STEP INTO コマンドまたは現在の STEP/INTO コマンドを修飾します。

共用可能イメージ・ルーチンへの呼び出しで実行が現在中断されている場合, STEP/INTO/NOSHARE は STEP/OVER と同じ働きです。そうでない場合, STEP/INTO/NOSHARE は STEP/INTO と同じ働きになります。

前回の SET STEP NOSHARE コマンドを上書きするには,STEP/INTO/SHARE を使用します。STEP/INTO/SHARE を指定すると,STEP/INTO は他の種類のルーチン内だけでなく,共用可能イメージ・ルーチン内の命令もステップ実行できるようになります。

/SILENT

/NOSILENT (省略時の設定)

STEP の完了後,"stepped to..." メッセージと現在の記憶位置のソース行を表示するかどうかを制御します。 /NOSILENT 修飾子はメッセージを表示することを指定します。/SILENT 修飾子はメッセージとソース行を表示しないことを指定します。/SILENT 修飾子を指定すると,/SOURCE は上書きされます。

/SOURCE (省略時の設定)

/NOSOURCE

STEP の完了後,現在の記憶位置のソース行を表示するかどうかを制御します。 /SOURCE 修飾子はソース行を表示することを指定します。/NOSOURCE 修飾子はソース行を表示しないことを指定します。/SILENT 修飾子を指定すると,/SOUR CE は上書きされます。SET STEP [NO]SOURCE コマンドも参照してください。

/SYSTEM (省略時の設定)

/NOSYSTEM

前回の SET STEP INTO コマンドまたは現在の STEP/INTO コマンドを修飾します。

(P1 空間内の) システム・ルーチンへの呼び出しで実行が現在中断されている場合, STEP/INTO/NOSYSTEM は STEP/OVER と同じ働きです。そうでない場合, STEP/INTO/NOSYSTEM は STEP/INTO と同じ働きです。

前回の SET STEP NOSYSTEM コマンドを上書きするには,STEP/INTO/SYSTEM を使用します。STEP/INTO/SYSTEM を指定すると,STEP/INTO は他の種類のルーチン内だけでなく,システム・ルーチン内の命令もステップ実行できるようになります。


説明

STEP コマンドはプログラムを実行するために使用できる 4 つのデバッガ・コマンドの 1 つです (他の 3 つは CALL,EXIT,GO です)。

STEP コマンドの動作は次の要因に依存します。

それまでに SET STEP コマンドを入力していない場合,修飾子もパラメータも指定せずに STEP コマンドを入力すると,デバッガは次の省略時の動作を行います。

  1. ソース・コードを 1 行実行する (省略時の設定は STEP/LINE)。

  2. "stepped to..."メッセージを発行することにより実行が完了したことを通知する (省略時の設定は STEP/NOSILENT)。

  3. 実行が中断されているソース・コードの行を表示する (省略時の設定は STEP/SOURCE)。

  4. プロンプトを表示する。

次の修飾子は命令をステップ実行する記憶位置に影響します。

/BRANCH
/CALL
/EXCEPTION
/INSTRUCTION
/INSTRUCTION=(opcode[,...]) (VAX のみ)
/LINE
/RETURN
/SEMANTIC_EVENT (Alpha のみ)

次の修飾子は 1 つのステップの完了時にどのような出力になるかに影響します。

/[NO]SILENT
/[NO]SOURCE

次の修飾子はルーチン呼び出し時に何が起きるかに影響します。

/INTO
/[NO]JSB (VAX のみ)
/OVER
/[NO]SHARE
/[NO]SYSTEM

同じ修飾子を指定して STEP コマンドを複数入力する予定ならば,最初に SET STEP コマンドを使用して新しい省略時の修飾子を設定することができます (たとえば,SET STEP INTO, NOSYSTEM と指定すれば,STEP コマンドは STEP/INTO/NOSYSTEM と同じ働きをするようになります)。この結果,STEP コマンドを指定するときにこれらの修飾子を使用する必要がなくなります。他の修飾子を指定することにより,1 つの STEP コマンドが継続している間,現在の省略時の修飾子を上書きすることができます。現在のSTEP コマンドの省略時の設定を示すには,SHOW STEP コマンドを使用します。

SET BREAK/EXCEPTION コマンドまたは STEP/EXCEPTION コマンドを実行した結果,例外ブレークポイントが検出されると,アプリケーション宣言条件ハンドラが起動される前に実行は中断されます。そのあと,STEP コマンドで実行を再開すると,デバッガは例外を再びシグナル通知し,条件ハンドラがあればその先頭までプログラムは実行されます (条件ハンドラ内の命令がステップ実行されます)。

Alphaシステムでは,プログラムが/OPTIMIZEを使用してコンパイルされた場合は, STEP/SEMANTIC_EVENTおよびSET STEP SEMANTIC_EVENTコマンドを使用してセマンティック・ステップ・モードを使用することができます。最適化されたコードをデバッグしている場合は,ソース・プログラムの明らかな記憶位置は,同じ行が繰り返し現れる状態で前後にバウンドする傾向があります。セマンティック・ステップ・モードでは,プログラムは,プログラム内の次のポイントまで実行します。次のポイントでは,顕著な効果(セマンティック・イベント)が現れます。

セマンティック・イベントは次のうちの 1 つです。

すべての割り当て,転送制御,または呼び出しがセマンティック・イベントというわけではありません。主な例外は次のようになります。

STEP/SEMANTIC_EVENTコマンドは,ブレークポイントが次のセマンティック・イベントに設定されるようにします。実行は,次のイベントに進みます。異なる行および文のすべての番号部分は,進行を妨げられすに,方法に従って実行される可能性があります。セマンティック・イベントが到達した場合(つまり,イベントに対応する命令が到達しているが,実行されていない場合)実行は中断されます(STEP/LINEを使用する場合の,次行への到達と似ています)。

デバッガの最適化されたプログラムについての詳細は,『OpenVMSデバッガ説明書』を参照してください。

マルチプロセス・プログラムをデバッグしているときには, STEP コマンドは現在のプロセス・セットのコンテキストで実行されます。さらに,マルチプロセス・プログラムをデバッグしているときのプロセス内での実行のされ方は,入力したコマンドが SET MODE [NO]INTERRUPT コマンドか,それとも SET MODE [NO]WAIT コマンドかによって異なります。省略時の設定 (SET MODE NOINTERRUPT) では,1 つのプロセスが停止しても,デバッガは他のプロセスに関しては何のアクションも行いません。また,やはり省略時の設定 (SET MODE WAIT) では,デバッガは現在のプロセス・セットの中のすべてのプロセスが停止するのを待ってから,新しいコマンドの入力を求めるプロンプトを表示します。詳細は,『OpenVMS デバッガ説明書』を参照してください。

VAXシステムでは,STEP/OVER コマンドは Fortran Run-Time Library ルーチンへと,飛び越されずに,ステップすることになります。詳細は,『OpenVMS デバッガ説明書』を参照してください。

関連コマンド

CALL
EXIT
GO
SET BREAK/EXCEPTION
SET MODE [NO]INTERRUPT
SET PROCESS
(SET,SHOW) STEP


#1

DBG> SHOW STEP
step type: source, nosilent, by line, 
           over routine calls
DBG> STEP
stepped to SQUARES$MAIN\%LINE 4 
     4:         OPEN(UNIT=8, FILE='DATAFILE.DAT', STATUS='OLD')
DBG>

この例では,SHOW STEP コマンドはSTEP コマンドに対して現在有効になっている省略時の修飾子を示します。この場合,STEP コマンドにはパラメータも修飾子も指定されていないため,ソース・コードの次の行を実行します。 STEP コマンドの完了後,実行は 4 行目の先頭で中断されます。

#2

DBG> STEP 5
stepped to MAIN\%LINE 47 
    47:         SWAP(X,Y);
DBG>

このコマンドはソース・コードの次の 5 行を実行します。 STEP コマンドの完了後,実行は 47 行目の先頭で中断されます。

#3

DBG> STEP/INTO
stepped to routine SWAP 
    23: procedure SWAP (A,B: in out integer) is
DBG> STEP
stepped to MAIN\SWAP\%LINE 24 
    24:    TEMP: integer := 0;
DBG> STEP/RETURN
stepped on return from MAIN\SWAP\%LINE 24 to MAIN\SWAP\%LINE 29 
    29: end SWAP;
DBG>

この例では,実行は SWAP ルーチンへの呼び出しで一時停止され, STEP/INTO コマンドは呼び出し先ルーチンの先頭までプログラムを実行します。STEP/RETURN コマンドは SWAP ルーチンの残りの部分をその RET 命令まで ( つまり,制御を呼び出し元ルーチンに戻す直前のポイントに至るまで ) 実行します。

#4

DBG> SET STEP INSTRUCTION
DBG> SHOW STEP
step type: source, nosilent, by instruction, 
           over routine calls
DBG> STEP
stepped to SUB1\%LINE 26: MOVL     S^#4,B^-20(FP) 
    26:    Z:integer:=4;
DBG>

この例では,SET STEP INSTRUCTION コマンドは省略時の STEP コマンド修飾子として /INSTRUCTION を設定します。これは SHOW STEP コマンドでチェックされます。STEP コマンドは次の命令を実行します。 STEP コマンドの完了後,実行は SUB1 モジュールの 26 行目の最初の命令 (MOVL) で中断されます。


STOP

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

形式

STOP [process-spec[,...]]


パラメータ

process-spec

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

[%PROCESS_NAME] process-name スペースや小文字を含まないプロセス名。プロセス名にはワイルドカード文字 (*) を含めることができる。
[%PROCESS_NAME] " process-name" スペースまたは小文字を含むプロセス名。二重引用符 (") の代わりに,一重引用符を (') 使用することもできる。
%PROCESS_PID process_id プロセス識別子 (PID,16 進数)。
[%PROCESS_NUMBER] process-number
(または %PROC process-number)
デバッガの制御下に入ったときにプロセスに割り当てられた番号。新しい番号は,1 から順番に各プロセスに割り当てられる。 EXIT コマンドまたは QUIT コマンドによってプロセスが終了した場合,そのデバッグ・セッション中にその番号が再割り当てされることがある。プロセス番号は SHOW PROCESS コマンドの実行で表示される。プロセスは,組み込みシンボル %PREVIOUS_PROCESS および %NEXT_PROCESS によってインデックスづけできるように,循環リスト内に順序づけされる。
process-set-name DEFINE/PROCESS_SET コマンドで定義された,プロセスのグループを表すシンボル。
%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) 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 に変換されます。


前へ 次へ 目次 索引