日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
/LINE 修飾子を指定すると,各ソース・コード行ごとにトレースポイントが設定されます。
次の修飾子は命令クラスにトレースポイントを設定します。これらの修飾子と /LINE 句をいっしょに使用すると,デバッガはプログラムの実行中に各命令をトレースするので,実行速度が著しく遅くなります。
/BRANCH
/CALL
/INSTRUCTION
/RETURN
/SYSEMULATE (Alpha のみ)
次の修飾子は,イベント・クラスにトレースポイントを設定します。
/ACTIVATING
/EVENT=event-name
/EXCEPTION
/TERMINATING
次の修飾子は,ルーチンを呼び出したときに何が起こるかを決定します。
/INTO
/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 状態に移行するとその時点をトレースします。
SET TYPE |
シンボリック名がない (および,そのために関連したコンパイラ生成型を持たない ) プログラム記憶位置に関連した省略時の型を設定します。 /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 および Integrity のみ) 省略時の型を IFEE の X 浮動小数点 (16 バイト長 ) に設定します。 G_FLOAT 省略時の型を G 浮動小数点数 (8 バイト長 ) に設定します。 INSTRUCTION 省略時の型を命令 ( 可変長,使用する命令オペランドの数とアドレッシング・モードの種類によって異なります ) に設定します。 LONG_FLOAT (Alpha および Integrity のみ) 省略時の型を IEEE S 浮動小数点数 ( 単精度,4 バイト長 ) に設定します。 LONG_LONG_FLOAT (Alpha および Integrity のみ) 省略時の型を IEEE T 浮動小数点数 ( 倍精度,8 バイト長 ) に設定します。 LONGWORD 省略時の型をロングワード整数 (4 バイト長 ) に設定します。これは,シンボリック名がない ( コンパイラ生成型を持たない ) プログラム記憶位置の省略時の型です。 OCTAWORD 省略時の型をオクタワード整数 (16 バイト長 ) に設定します。 PACKED: n 省略時の型をパック 10 進数に設定します。 n の値は 10 進数字です。各桁とも 1 ニブル (4 ビット ) を占めます。 QUADWORD 省略時の型をクォドワード整数 (8 バイト長 ) に設定します。これは,64ビットのアプリケーションのデバッグには使用しないでください TYPE=( expression) 省略時の型を expression が示す型 ( プログラム内で宣言された変数またはデータ型の名前 ) に設定します。これを指定すると,アプリケーションで宣言した型を指定できます。 S_FLOAT (Alpha および Integrity のみ) LONG_FLOAT と同じです。 T_FLOAT (Alpha および Integrity のみ) LONG_LONG_FLOAT と同じです。 WORD 省略時の型をワード整数 (2 バイト長) に設定します。 X_FLOAT (Alpha および Integrity のみ) EXTENDED_FLOAT と同じです。
/OVERRIDE
シンボリック名の有無 (関連したコンパイラ生成型の有無) にかかわらず,指定された型をすべてのプログラム記憶位置に関連づけます。
コマンド EXAMINE,DEPOSIT,または EVALUATE を使用すると,アドレス式の省略時の型によって,デバッガがプログラムの値を解釈し表示する方法が異なります。デバッガは,シンボリック・アドレス式 (プログラム内で宣言したシンボリック名) に対応したコンパイラ生成型を認識し,これらの記憶位置の内容を解釈して表示します。シンボリック名を持たない (したがって関連したコンパイラ生成型を持たない) プログラム記憶位置の場合,省略時の型はどの言語でもロングワード整数で,32ビトのアプリケーションのデバッグにも使用できます。
タイプ指定されていないストレージの省略時のデータ・タイプはロングワード(32ビット)からクォドワード(64ビット)に変更されています。
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 変数を設定します。
SET WATCH |
アドレス式で示された記憶位置にウォッチポイントを設定します。
SET WATCH address-expression[,...]
[WHEN(conditional-expression)]
[DO(command[;...])]
address-expression
ウォッチポイントを設定するアドレス式 ( プログラム記憶位置 ) を指定します。高級言語の場合,これはたいていはプログラム変数です。変数を一意に指定するパス名をいれることができます。また,アドレス式はメモリ・アドレスまたはレジスタの場合もあります。数字 ( オフセット ) とシンボルで構成したり,1 つまたは複数の演算子,オペランド,または区切り文字で構成したりできます。アドレス式で使用できる演算子についての詳しい説明は, HELP Address_Expressionsをタイプしてください。ワイルドカード文字のアスタリスク (*) は使用できません。
conditional-expression
現在設定されている言語で条件式を指定します。この式は実行がウォッチポイントに達したときに評価されます。デバッガは,実行がウォッチポイントに達すると,WHEN 句にある式の構文をチェックします。式が真であれば,デバッガはウォッチポイントが発生したことを報告します。ブレーク・アクション (DO 句 ) がブレークポイントと関連付けられている場合は,同時に発生します。式が偽の場合は報告されません。また,DO 句 ( 指定されている場合 ) によって指定されたコマンドは実行されず,プログラム実行が続行されます。command
ウォッチ・アクションが実行されたときに,実行するデバッガ・コマンドを DO 句の一部として指定します。デバッガは,ウォッチポイントが設定されたときではなく,DO 句を実行したときに,DO 句にある式の構文をチェックします。
/AFTER:n
指定されたウォッチポイントが n 回 (n は10 進整数 ) 検出されるまで,ウォッチ・アクションを実行しないことを指定します。それ以降は,WHEN 句の条件 ( 指定された場合 ) が真ならば,検出されるたびにウォッチポイントが発生します。 SET WATCH/AFTER:1 コマンドは,SET WATCH と同じです。/INTO
定義ルーチン内だけでなく定義ルーチンから呼び出されたルーチン内 ( およびそのようにネストしたそれ以外の呼び出しから呼び出されたルーチン内 ) の命令もトレースすることにより,非静的変数をデバッガがモニタするよう指定します。 SET WATCH/INTO コマンドを使用すると,呼び出されたルーチン内の非静的変数を SET WATCH/OVER を使用したときよりも正確にモニタできます。ただし,呼び出されたルーチンにおける実行速度は SET WATCH/OVER の方が速くなります。/OVER
定義ルーチンが呼び出すルーチン内でなく定義ルーチン内だけで命令のトレースを行うことによって,非静的変数のモニタをデバッガが行うよう指定します。その結果,デバッガは呼び出されたルーチンを通常の速度でモニタし,定義ルーチンに実行が戻ったときだけ命令のトレースを再開します。SET WATCH/OVER コマンドは SET WATCH/INTO より実行速度が速くなります。しかし,呼び出されたルーチンがウォッチされる変数を変更すると定義ルーチンに戻ったときだけ実行が割り込まれます。非静的変数にウォッチポイントを設定する場合, SET WATCH/OVER が省略時の設定です。/SILENT
/NOSILENT (省略時の設定)
"watch..." メッセージと,現在の記憶位置のソース行をウォッチポイントで表示するかどうかを制御します。/NOSILENT 修飾子を指定すると,メッセージが表示されます。 /SILENT 修飾子を指定すると,メッセージとソース行は表示されません。 /SILENT 修飾子を指定すると,/SOURCE は上書きされます。/SOURCE (省略時の設定)
/NOSOURCE
現在の記憶位置のソース行をウォッチポイントで表示するかどうかを制御します。/SOURCE 修飾子を指定すると,ソース行が表示されます。 /NOSOURCE 修飾子を指定すると,ソース行は表示されません。 /SILENT 修飾子を指定すると,/SOURCE は上書きされます。 SET STEP [NO]SOURCE コマンドも参照してください。/STATIC
/NOSTATIC
指定された変数 ( ウォッチポイント記憶位置 ) が静的か非静的かについてのデバッガの省略時の判定を上書きすることができます。 /STATIC 修飾子を指定すると,デバッガは変数が P1 空間に割り当てられていても変数を静的変数として扱います。この結果,デバッガは各命令をトレースする代わりに,高速の書き込み保護モードを使用して記憶位置をモニタできます。 /NOSTATIC 修飾子を指定すると,デバッガは変数が P0 空間に割り当てられていても変数を非静的変数として扱わなければなりません。このため,デバッガは各命令をトレースして記憶位置をモニタします。したがって,これらの修飾子を使用する場合には,注意が必要です。/TEMPORARY
ウォッチポイントを検出したあとでそのウォッチポイントを消去します ( ウォッチポイントを一時的に設定するときに使用します )。
命令でウォッチポイント記憶位置を変更すると,デバッガは次の処理を実行します。
- その命令が実行を完了したあと,プログラム実行を中断する。
- ウォッチポイントの設定時に /AFTER を指定した場合,AFTER 回数をチェックする。指定された回数に達していないと実行が再開され,デバッガは残りのステップを実行しない。
- ウォッチポイントの設定時に WHEN 句を指定した場合,WHEN 句の式を評価する。式の値が偽であれば実行が続行され,デバッガは残りのステップを実行しない。
- /SILENT を指定していなければ,実行がウォッチポイント記憶位置に達したことを報告する ("watchof...")。
- ウォッチポイント記憶位置での古い ( 変更前の ) 値を報告する。
- ウォッチポイント記憶位置での新しい ( 変更後の ) 値を報告する。
- ウォッチポイント設定時に /NOSOURCE も /SILENT も指定しないか,または SET STEP NOSOURCE コマンドを入力していない場合,実行を中断したソース・コード行を表示する。
- ウォッチポイント設定時に DO 句を指定していれば,その DO 句内のコマンドを実行する。DO 句に GO コマンドが含まれていれば実行を続行し,デバッガは次のステップを実行しない。
- プロンプトを表示する。
高級言語の場合,SET WATCH コマンドで指定するアドレス式はたいてい変数です。コンパイラ生成型に対応した絶対メモリ・アドレスを指定すると,デバッガはそのアドレスをシンボル化し,その型に対応したバイト長を使用して,ウォッチポイント記憶位置のバイト長を決定します。デバッガがコンパイラ生成型と関連づけることができない絶対メモリ・アドレスが指定されると,デバッガはアドレス式が示すバイトで始まる 4 バイト ( 省略時の設定 ) のメモリをモニタします。ただし,この長さは,入力を WORD (SET TYPE WORD, 省略時の長さを 2 バイトに変更します ) か BYTE (SET TYPE BYTE, 省略時の長さを 1バイトに変更します ) に設定すれば変更できます。 SET TYPE LONGWORD を指定すると,省略時の長さは4 バイトに戻ります。
目次 索引
|