日本-日本語

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

OpenVMS マニュアル


≫ 

OpenVMS V7.3-2
ライブラリ

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

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


目次 索引

/SYSTEM 修飾子を指定すると,他のルーチンだけでなくシステム・ルーチン (P1 空間 ) 内でもデバッガはトレースポイントを設定できます。 /NOSYSTEM 修飾子を指定すると,システム・ルーチン内ではトレースポイントは設定されません。

/TEMPORARY

トレースポイントを検出したあとでそのトレースポイントを消去します ( トレースポイントを一時的に設定するときに使用します )。

/TERMINATING

省略時の設定。プロセスがイメージを終了したときにデバッガがトレースします。単一プロセス・プログラムまたはマルチプロセス・プログラムの最後のイメージが終了すると,デバッガに制御が戻り,そのプロンプトを表示します。/ACTIVATING 修飾子も参照してください。



/VECTOR_INSTRUCTION

(VAX のみ ) デバッガは,プログラム実行中に検出したすべてのベクタ命令をトレースします。/INTO 修飾子と /OVER 修飾子も参照してください。

説明

トレースポイントが検出されると,デバッガは次の動作を行います。

  1. トレースポイント記憶位置でプログラムの実行を中断する。

  2. トレースポイントの設定時に /AFTER を指定した場合,AFTER 回数をチェックする。指定された回数に達していないと実行が再開され,デバッガは残りのステップを実行しない。

  3. トレースポイントの設定時に WHEN 句を指定した場合,WHEN 句の式を評価する。式の値が偽であれば実行が再開され,デバッガは残りのステップを実行しない。

  4. /SILENT が指定されていない場合, "trace..." メッセージを発行して,実行がトレースポイント記憶位置に達したことを報告する。

  5. トレースポイントの設定時に /NOSOURCE も /SILENT も指定しないか,または SET STEP NOSOURCE コマンドを入力していない場合,トレースポイントに対応したソース・コード行を表示する。

  6. トレースポイントの設定時に DO 句を指定していれば,その DO 句内のコマンドを実行する。

  7. 実行を再開する。

プログラムの特定の記憶位置にトレースポイントを設定するには, SET TRACE コマンドでアドレス式を指定します。連続したソース行,命令クラス,またはイベントにトレースポイントを設定するには, SET TRACE コマンドとともに修飾子を指定します。通常はアドレス式か修飾子のどちらかを指定するだけでよく,両方を指定する必要はありません。ただし,/EVENT と /RETURN の場合は両方指定しなければなりません。

/LINE 修飾子を指定すると,各ソース・コード行ごとにトレースポイントが設定されます。

次の修飾子は命令クラスにトレースポイントを設定します。これらの修飾子と /LINE 句をいっしょに使用すると,デバッガはプログラムの実行中に各命令をトレースするので,実行速度が著しく遅くなります。

/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...]) (VAX のみ)
/RETURN
/SYSEMULATE (Alpha のみ)
/VECTOR_INSTRUCTION (VAX のみ)

次の修飾子は,イベント・クラスにトレースポイントを設定します。

/ACTIVATING
/EVENT=event-name
/EXCEPTION
/TERMINATING

次の修飾子は,ルーチンを呼び出したときに何が起こるかを決定します。

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

次の修飾子は,トレースポイントに達したときにどんな出力を表示するかを決定します。

/[NO]SILENT
/[NO]SOURCE

次の修飾子は,トレースポイントのタイミングと期間を決定します。

/AFTER:n
/TEMPORARY

プログラム記憶位置の内容の変更 ( 通常は変数の値の変更 ) をモニタするには,/MODIFY 修飾子を使用します。

現在ブレークポイントとして使用されている記憶位置をトレースポイントとして設定すると,ブレークポイントは取り消されます。また,逆も同様です。

トレースポイントには,ユーザが定義するものと定義済みのものとがあります。ユーザ定義のトレースポイントとは,ユーザが SET TRACE コマンドで明示的に設定したトレースポイントです。定義済みのトレースポイントは,デバッグするプログラムの種類 (Ada あるいはマルチプロセスなど ) によって異なりますが,デバッガの起動時に自動的に設定されます。現在設定されているすべてのトレースポイントを表示するには,SHOW TRACE コマンドを使用します。定義済みのトレースポイントは定義済みのものとして表示されます。

ユーザ定義トレースポイントと定義済みトレースポイントは,それぞれ別々に設定したり取り消したりします。たとえば,1 つの記憶位置またはイベントに,ユーザ定義トレースポイントと定義済みトレースポイントの両方を設定することができます。ユーザ定義トレースポイントを取り消しても,定義済みトレースポイントは影響を受けません。逆も同様です。

関連コマンド

(ACTIVATE,DEACTIVATE,SHOW,CANCEL) TRACE
CANCEL ALL
GO
SET BREAK
(SET,SHOW) EVENT_FACILITY
SET STEP [NO]SOURCE
SET WATCH

#1

DBG> SET TRACE SUB3

このコマンドの場合,SUB3 ルーチンが実行されるとルーチンの先頭をトレースします。

#2

DBG> SET TRACE/BRANCH/CALL

このコマンドの場合,プログラム実行中に検出されたすべての BRANCH 命令と CALL 命令をトレースします。

#3

DBG> SET TRACE/LINE/INTO/NOSHARE/NOSYSTEM

このコマンドの場合,各ソース行の先頭をトレースします。この行には,呼び出されたルーチン (/INTO) 内の行は含まれますが,共用可能イメージ・ルーチン (/NOSHARE) またはシステム・ルーチン (/NOSYSTEM)内の行は含まれません。

#4

DBG> SET TRACE/NOSOURCE TEST5\%LINE 14 WHEN (X .NE. 2) DO (EXAMINE Y)

このコマンドの場合,X が 2 ではないとき TEST5 モジュールの行 14 をトレースします。トレースポイントでは EXAMINE Y コマンドが実行されます。 /NOSOURCE 修飾子が指定されているので,トレースポイントではソース・コードは表示されません。 WHEN 句内の条件式の構文は言語固有です。

#5

DBG> SET TRACE/INSTRUCTION WHEN (X .NE. 0)

このコマンドの場合,X がゼロでないときにトレースします。実行中に検出されたすべての命令で条件が調べられます。 WHEN 句内の条件式の構文は言語固有です。

#6

DBG> SET TRACE/SILENT SUB2 DO (SET WATCH K)

このコマンドの場合,実行中に SUB2 ルーチンの先頭をトレースします。トレースポイントでは,DO 句によって変数 K にウォッチポイントが設定されます。 /SILENT 修飾子が指定されているので,トレースポイントを検出したとき "trace..." メッセージとソース・コードは表示されません。これは,非静的変数 ( スタックまたはレジスタ ) にウォッチポイントを設定する便利な方法です。非静的変数は,その定義ルーチン ( この例では SUB2) がアクティブのとき ( 呼び出しスタック上に存在するとき ) だけ定義されます。

#7

DBG> SET TRACE/RETURN ROUT4 DO (EXAMINE X)

このコマンドの場合,デバッガは ROUT4 ルーチンの復帰命令を ( すなわち,呼び出す側のルーチンに実行が戻る直前に ) トレースします。トレースポイントでは,DO 句が EXAMINE X コマンドを実行します。これは,非静的変数の定義ルーチンの実行が終了する直前にその変数の値を得るのに便利です。

#8

DBG> SET TRACE/EVENT=TERMINATED

このコマンドの場合,いずれかのタスクが TERMINATED 状態に移行するとその時点をトレースします。




シンボリック名がない (および,そのために関連したコンパイラ生成型を持たない ) プログラム記憶位置に関連した省略時の型を設定します。 /OVERRIDE とともに使用すると,すべての記憶位置に関連した省略時の型を設定し,コンパイラ生成型を上書きします。

形式

SET TYPE type-keyword


パラメータ



type-keyword

設定する省略時の型を指定します。次のいずれかのキーワードを指定できます。

ASCIC 1 バイトのカウント・フィールドに続く,このカウント・フィールドにより長さを指定された ASCII 文字列を省略時の型と設定します。AC と入力することもできます。
ASCID 省略時の型を ASCII 文字列ディスクリプタに設定します。ディスクリプタの CLASS フィールドと DTYPE フィールドはチェックされません。LENGTH フィールドと POINTER フィールドは ASCII 文字の文字長さとアドレスを示します。次に文字列が表示されます。 AD と入力することもできます。
ASCII: n 省略時の型を ASCII 文字列 ( 長さ n バイト ) に設定します。この長さは,調べるメモリのバイト数と,表示する ASCII 文字数の両方を示します。 n の値を指定しないと,デバッガは省略時の値 4 バイトを使用します。 nの値は 10 進形式の基数で解釈されます。
ASCIW 2 バイトのカウント・フィールドに続く,このカウント・フィールドにより長さを指定された ASCII 文字列を省略時の型と設定します。このデータ型は PASCAL および PL/I の場合に指定できます。AW と入力することもできます。
ASCIZ 省略時の型を 0 で終了する ASCII 文字列に設定します。最後の 0 のバイトは文字列の終わりを示します。 AZ と入力することもできます。
BYTE 省略時の型をバイト整数 (1 バイト長 ) に設定します。
D_FLOAT 省略時の型を D 浮動小数点数 (8 バイト長 ) に設定します。
DATE_TIME 省略時の型を日時に設定します。これはクォドワード整数 (8 バイト長 ) であり,日時の内部表現を含んでいます。値は, dd-mmm-yyyy hh:mm:ss.cc の形式で表示されます。絶対日時は,次のように指定します。
[dd-mmm-yyyy[:]] [hh:mm:ss.cc]

EXTENDED_FLOAT (Alpha のみ ) 省略時の型を IFEE の X 浮動小数点 (16 バイト長 ) に設定します。
FLOAT VAX プロセッサの場合,省略時の型を IFEE の F 浮動小数点数 (4 バイト長 ) に設定します。

Alpha プロセッサの場合は,省略時の型を IFEE の T 浮動小数点数 (8 バイト長 ) に設定します。

G_FLOAT 省略時の型を G 浮動小数点数 (8 バイト長 ) に設定します。
H_FLOAT (VAX のみ) 省略時の型を H 浮動小数点数 (16 バイト長 ) に設定します。
INSTRUCTION 省略時の型を命令 ( 可変長,使用する命令オペランドの数とアドレッシング・モードの種類によって異なります ) に設定します。
LONG_FLOAT (Alpha のみ) 省略時の型を IEEE S 浮動小数点数 ( 単精度,4 バイト長 ) に設定します。
LONG_LONG_FLOAT (Alpha のみ) 省略時の型を IEEE T 浮動小数点数 ( 倍精度,8 バイト長 ) に設定します。
LONGWORD 省略時の型をロングワード整数 (4 バイト長 ) に設定します。これは,シンボリック名がない ( コンパイラ生成型を持たない ) プログラム記憶位置の省略時の型です。
OCTAWORD 省略時の型をオクタワード整数 (16 バイト長 ) に設定します。
PACKED: n 省略時の型をパック 10 進数に設定します。 n の値は 10 進数字です。各桁とも 1 ニブル (4 ビット ) を占めます。
QUADWORD 省略時の型をクォドワード整数 (8 バイト長 ) に設定します。これは,64ビットのアプリケーションのデバッグには使用しないでください
TYPE=( expression) 省略時の型を expression が示す型 ( プログラム内で宣言された変数またはデータ型の名前 ) に設定します。これを指定すると,アプリケーションで宣言した型を指定できます。
S_FLOAT (Alpha のみ) LONG_FLOAT と同じです。
T_FLOAT (Alpha のみ) LONG_LONG_FLOAT と同じです。
WORD 省略時の型をワード整数 (2 バイト長) に設定します。
X_FLOAT (Alpha のみ) EXTENDED_FLOAT と同じです。


修飾子



/OVERRIDE

シンボリック名の有無 (関連したコンパイラ生成型の有無) にかかわらず,指定された型をすべてのプログラム記憶位置に関連づけます。

説明

コマンド EXAMINE,DEPOSIT,または EVALUATE を使用すると,アドレス式の省略時の型によって,デバッガがプログラムの値を解釈し表示する方法が異なります。

デバッガは,シンボリック・アドレス式 (プログラム内で宣言したシンボリック名) に対応したコンパイラ生成型を認識し,これらの記憶位置の内容を解釈して表示します。シンボリック名を持たない (したがって関連したコンパイラ生成型を持たない) プログラム記憶位置の場合,省略時の型はどの言語でもロングワード整数で,32ビトのアプリケーションのデバッグにも使用できます。

Alpha システムでは,64 ビット・アドレス空間を使用するアプリケーションをデバッグするには, SET TYPE QUADWORD コマンドを使用してください。

SET TYPE コマンドを使用すると,シンボリック名を持たない記憶位置の省略時の型を変更できます。また,SET TYPE/OVERRIDE コマンドを使用すると,シンボリック名の有無にかかわらず すべての プログラム記憶位置の省略時の型を設定できます。

EXAMINE コマンドと DEPOSIT コマンドには,任意の プログラム記憶位置の型を 1 つのコマンドの実行中に上書きできる型修飾子 (/ASCII,/BYTE,/G_FLOAT など) があります。

関連コマンド

CANCEL TYPE/OVERRIDE
DEPOSIT
EXAMINE
(SET,SHOW,CANCEL) RADIX
(SET,SHOW,CANCEL) MODE
SHOW TYPE

#1

DBG> SET TYPE ASCII:8

このコマンドは,未定義のプログラム記憶位置の省略時の型として 8 バイトの ASCII 文字列を設定します。

#2

DBG> SET TYPE/OVERRIDE LONGWORD

このコマンドは,未定義のプログラム記憶位置とコンパイラ生成型を持つプログラム記憶位置の両方の省略時の型としてロングワード整数を設定します。

#3

DBG> SET TYPE D_FLOAT

このコマンドは,未定義のプログラム記憶位置の省略時の型として D 浮動小数点数を指定します。

#4

DBG> SET TYPE TYPE=(S_ARRAY)

このコマンドは,未定義のプログラム記憶位置の省略時の型として S_ARRAY 変数を設定します。




デバッガ・ベクタ・モード・オプションを許可したり,禁止したりできます。

VAX ベクタ化されたプログラムにのみ適用されます。


形式

SET VECTOR_MODE vector-mode-option


パラメータ



vector-mode-option

ベクタ・モード・オプションを指定します。次のいずれかのキーワードを指定できます。

SYNCHRONIZED ベクタ命令が実行されたら必ずスカラ型プロセッサとベクタ型プロセッサをデバッガが自動的に同期化することを指定します。具体的には,デバッガはベクタ命令を実行するたびにそのあとで SYNC 命令を実行し,メモリにアクセスするベクタ命令を実行するたびにそのあとで MSYNC 命令を実行します。この結果,同期化されるベクタ命令に関連したすべての処理が終了します。

  • ベクタ命令によって生じた例外は,次のスカラ命令が実行される前に実行が要求されます。保留中の例外の実行を要求すると,例外ブレークポイントまたは例外トレースポイント ( 設定されている場合 ) が検出されるか,例外ハンドラ ( プログラム内のその記憶位置で使用できる場合 ) が起動されます。

  • ベクタ・レジスタと,汎用レジスタまたはメモリ間の読み込み操作と書き込み操作は,次のスカラ命令が実行される前に完了します。

SET VECTOR_MODE SYNCHRONIZED コマンドを実行すると,SYNC コマンドや MSYNC コマンドがすぐに実行されるわけではありません。すぐに同期化するには,SYNCHRONIZE VECTOR_MODE コマンドを使用します。

NOSYNCHRONIZED 省略時の設定。デバッガの内部的目的以外では,スカラ型プロセッサとベクタ型プロセッサ間の同期化をデバッガが強制しないよう指定します。その結果,同期化がプログラムによって完全に制御され,プログラムはデバッガの制御下にないかのように実行されます。


説明

ベクタ・モード・オプションは,デバッガがベクタ型プロセッサと対話する方法を制御します。SET VECTOR_MODE コマンドについて詳しくは,パラメータの説明を参照してください。

関連コマンド

(SHOW,SYNCHRONIZE) VECTOR_MODE

#1

DBG> SET VECTOR_MODE SYNCHRONIZED

このコマンドを使用すると,ベクタ命令が実行されるたびに,そのあとでデバッガがスカラ型プロセッサとベクタ型プロセッサ間を同期化させます。

#2

DBG> SHOW VECTOR_MODE
Vector mode is nonsynchronized
DBG> SET VECTOR_MODE SYNCHRONIZED   (1)
DBG> SHOW VECTOR_MODE
Vector mode is synchronized
DBG> STEP   (2)
stepped to .MAIN.\SUB\%LINE 99 
    99:         VVDIVD  V1,V0,V2
DBG> STEP   (3)
%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>
 

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

(SHOW,SYNCHRONIZE) VECTOR_MODE


目次 索引

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