日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS V7.3-2
ライブラリ

タイトルページ
目次
まえがき
第 1 章:デバッガ・コマンド・ディクショナリ概要
第 2 章:デバッガ・コマンド・ディクショナリ
索引
PDF
OpenVMS ホーム

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


目次 索引

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 は他の種類のルーチン内だけでなく,システム・ルーチン内の命令もステップ実行できるようになります。

/VECTOR_INSTRUCTION

(VAX のみ) 次のベクタ命令までプログラムを実行します。 STEP/VECTOR_INSTRUCTION は SET BREAK/TEMPORARY/VECTOR_INSTRUCTION;GO と同じ働きです。

説明

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

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

  • 前回の SET STEP コマンドで設定された省略時の STEP モード (ただし,設定されている場合)。

  • STEP コマンドで指定された修飾子 (ただし,指定されている場合)。

  • 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 のみ)
/VECTOR_INSTRUCTION (VAX のみ)

次の修飾子は 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つです。

  • データ・イベント --- ユーザへの割り当てが可能

  • 制御イベント --- 呼び出し以外の条件付きまたは条件なしの転送の制御で,制御フローの決定

  • 呼び出しイベント --- 呼び出し(ステップされないルーチン)または呼び出しからの戻り

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

  • 2 つの命令が,複雑な値または X 浮動の値に割り当てる必要がある場合は,最初の命令だけがセマンティック・イベントとして扱われます。

  • あるケースまたは選択構造を実行する判断ツリーの分岐など,単一の上位レベル構造の一部である分岐が複数ある場合は,最初のイベントだけがセマンティック・イベントとして扱われます。

  • 一種の文字列または記憶域のコピー操作を処理するOTS$MOVEへの呼び出しなどの,コンパイラ指定のヘルプ・ルーチンであるルーチンに呼び出しが作成された場合は,呼び出しはセマンティック・イベントとはみなされません。呼び出しの際に,制御は終了しません。
    ルーチンにステップするには,次のいずれかを行わなければなりません。

    • ルーチン・エントリ・ポイントにブレークポイントを設定するか,または

    • 一連のSTEP/INSTRUCTIONコマンドを使用して関連する呼び出しに到達した後に, STEP/INSTRUCTION/INTOを使用して呼び出されたルーチンに入ります。

  • 同じ行番号で,1行につき1つ以上の潜在的なセマンティック・イベントがある場合は,最初のイベントだけがセマンティック・イベントとして扱われます。

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

デバッガの最適化されたプログラムについての詳細は,『HP 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 [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-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 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 に変換されます。




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

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>
 

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


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項