HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
SET TRACE/MODIFY X コマンドは SET WATCH X DO(GO) と同じです。 SET TRACE/MODIFY コマンドは,SET WATCH コマンドと全く同じ制限事項の下で動作します。
アドレス式に絶対アドレスを指定すると,デバッガがアドレスを特定のデータ・オブジェクトに関連づけることができない場合があります。この場合,デバッガは省略時の長さとして 4 バイトを使用します。ただし,この長さは,入力を WORD (SET TYPE WORD,省略時の長さを 2 バイトに変更します ) か BYTE (SET TYPE BYTE,省略時の長さを 1 バイトに変更します ) に設定すれば変更できます。 SET TYPE LONGWORD コマンドを指定すると,省略時の長さは 4 バイトに戻ります。
/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...]) (VAX のみ)
/LINE
/OVER をこれらの修飾子といっしょに使用すると,( 呼び出されたルーチンではなく ) 現在実行を中断しているルーチン内だけの指定された箇所をデバッガはトレースします。 /OVER 修飾子は,/INTO (省略時の設定) の反対です。
VAX プロセッサの場合,この修飾子は,CALLS 命令または CALLG 命令で呼び出したルーチンにだけ指定できます。 JSB ルーチンでは使用できません。 Alpha プロセッサの場合,この修飾子はどのルーチンにも指定できます。
address-expression パラメータは,ルーチン内の命令アドレスです。単なるルーチン名の場合もあります。この場合は,ルーチンの開始アドレスを指定します。ただし,ルーチン内の別の場所を指定することもできます。こうすると,特定のコード・パスを実行したあとに行われる復帰だけを調べることができます。
SET TRACE/RETURN コマンドで SET TRACE と同じアドレス式を指定すると, SET TRACE は取り消されます。
/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...]) (VAX のみ)
/LINE
/SHARE 修飾子を使用すると,デバッガは共用可能イメージ・ルーチン内でもその他のルーチンの場合と同様にトレースポイントを設定できます。 /NOSHARE 修飾子を指定すると,共用可能イメージ内にはトレースポイントは設定されません。
/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...]) (VAX のみ)
/LINE
/SYSTEM 修飾子を指定すると,他のルーチンだけでなくシステム・ルーチン (P1 空間 ) 内でもデバッガはトレースポイントを設定できます。 /NOSYSTEM 修飾子を指定すると,システム・ルーチン内ではトレースポイントは設定されません。
トレースポイントが検出されると,デバッガは次の動作を行います。
- トレースポイント記憶位置でプログラムの実行を中断する。
- トレースポイントの設定時に /AFTER を指定した場合,AFTER 回数をチェックする。指定された回数に達していないと実行が再開され,デバッガは残りのステップを実行しない。
- トレースポイントの設定時に WHEN 句を指定した場合,WHEN 句の式を評価する。式の値が偽であれば実行が再開され,デバッガは残りのステップを実行しない。
- /SILENT が指定されていない場合, "trace..." メッセージを発行して,実行がトレースポイント記憶位置に達したことを報告する。
- トレースポイントの設定時に /NOSOURCE も /SILENT も指定しないか,または SET STEP NOSOURCE コマンドを入力していない場合,トレースポイントに対応したソース・コード行を表示する。
- トレースポイントの設定時に DO 句を指定していれば,その DO 句内のコマンドを実行する。
- 実行を再開する。
プログラムの特定の記憶位置にトレースポイントを設定するには, SET TRACE コマンドでアドレス式を指定します。連続したソース行,命令クラス,またはイベントにトレースポイントを設定するには, SET TRACE コマンドとともに修飾子を指定します。通常はアドレス式か修飾子のどちらかを指定するだけでよく,両方を指定する必要はありません。ただし,/EVENT と /RETURN の場合は両方指定しなければなりません。
/LINE 修飾子を指定すると,各ソース・コード行ごとにトレースポイントが設定されます。
次の修飾子は命令クラスにトレースポイントを設定します。これらの修飾子と /LINE 句をいっしょに使用すると,デバッガはプログラムの実行中に各命令をトレースするので,実行速度が著しく遅くなります。
/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...]) (VAX のみ)
/RETURN
/SYSEMULATE (Alpha のみ)次の修飾子は,イベント・クラスにトレースポイントを設定します。
/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 および I64 のみ) 省略時の型を 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 および I64 のみ) 省略時の型を IEEE S 浮動小数点数 ( 単精度,4 バイト長 ) に設定します。 LONG_LONG_FLOAT (Alpha および I64 のみ) 省略時の型を IEEE T 浮動小数点数 ( 倍精度,8 バイト長 ) に設定します。 LONGWORD 省略時の型をロングワード整数 (4 バイト長 ) に設定します。これは,シンボリック名がない ( コンパイラ生成型を持たない ) プログラム記憶位置の省略時の型です。 OCTAWORD 省略時の型をオクタワード整数 (16 バイト長 ) に設定します。 PACKED: n 省略時の型をパック 10 進数に設定します。 n の値は 10 進数字です。各桁とも 1 ニブル (4 ビット ) を占めます。 QUADWORD 省略時の型をクォドワード整数 (8 バイト長 ) に設定します。これは,64ビットのアプリケーションのデバッグには使用しないでください TYPE=( expression) 省略時の型を expression が示す型 ( プログラム内で宣言された変数またはデータ型の名前 ) に設定します。これを指定すると,アプリケーションで宣言した型を指定できます。 S_FLOAT (Alpha および I64 のみ) LONG_FLOAT と同じです。 T_FLOAT (Alpha および I64 のみ) LONG_LONG_FLOAT と同じです。 WORD 省略時の型をワード整数 (2 バイト長) に設定します。 X_FLOAT (Alpha および I64 のみ) 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 変数を設定します。
| 前へ | 次へ | 目次 | 索引 |