前へ | 次へ | 目次 | 索引 |
デバッガが画面やその他の出力を編集するときに使用する端末画面の高さと幅を設定します。
注意
このコマンドは,デバッガへの Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースでは使用できません。
SET TERMINAL
/PAGE:n
端末画面の高さをn行に設定することを指定します。18 から 100 まで指定できます。/WIDTH:n
端末画面の幅をn欄に設定することを指定します。20 から 255 まで指定できます。VT100,VT200 または VT300 のシリーズの端末では,nは通常の場合 80 または 132 です。/WRAP
デバッガが定義済みのディスプレイ OUT に /WIDTH 修飾子によって指定されたカラムで出力テキストをラップするようにします。/WIDTH を現在のコマンドに指定しない場合は,/WRAP は %WIDTH 設定を省略時の設定にします。
SET TERMINAL コマンドを使用すると,デバッガが画面出力の編集に使用できる画面部分を定義できます。このコマンドは,VT100,VT200 または VT300 のシリーズの端末を使用する場合に便利です。この場合,たいていは画面幅を 80 欄または 132 欄に設定できます。また,ワークステーションではデバッガが使用するターミナル・エミュレータ・ウィンドウのサイズを変更できるので,やはり便利です。
少なくとも 1 つの修飾子を指定しなければなりません。全部の修飾子を指定することも可能です。/PAGE 修飾子と /WIDTH 修飾子には,それぞれ値が必要です。
SET TERMINAL コマンドを入力すると,すべての画面ウィンドウ定義が,新しい画面サイズに合うように自動的に調整されます。たとえば,RH1 は,画面の右上半分を表示するようにサイズを比例して変更します。
同様に,すべての "動的" 表示ウィンドウは,相対的な比率を維持するように自動的に調整されます。すべての標準ウィンドウは動的ですが,DISPLAY/NODYNAMIC コマンドで参照した場合は例外です。その場合には,あとで SET TERMINAL コマンドを実行した場合も,表示ウィンドウは現在のサイズのまま変化しません。しかし,DISPLAY コマンドを使用すると,表示ウィンドウを再構成できます(また,BLUE-MINUS などのキーパッド・キーの組み合わせを使用して,定義済みの DISPLAY コマンドを入力することも可能です)。
関連コマンド
DISPLAY/[NO]DYNAMIC
EXPAND
(SET,SHOW,CANCEL)WINDOW
SHOW TERMINAL
DBG> SET TERMINAL/WIDTH:132 |
このコマンドは,端末画面幅を 132 欄に設定することを指定します。
特定のクラスの命令または指定されたイベントの発生時に,アドレス式で示された記憶位置にトレースポイントを設定します。
SET TRACE [address-expression[,...]]
[WHEN(conditional-expression)]
[DO(command[;...])]
address-expression
トレースポイントを設定するアドレス式(プログラム記憶位置)を指定します。高級言語の場合,これはたいていは行番号,ルーチン名,またはラベルです。値を一意に指定するパス名をいれることもできます。また,アドレス式はメモリ・アドレスまたはレジスタの場合もあります。数字(オフセット)とシンボルで構成したり,1 つまたは複数の演算子,オペランド,または区切り文字で構成したりできます。アドレス式で使用できる演算子についての詳しい説明は,ヘルプ・トピック Address_Expressions を参照してください。ワイルドカード文字のアスタリスク(*)は使用できません。また次の修飾子を指定する場合は,アドレス式は指定できません。
/ACTIVATING
/BRANCH
/CALL
/EXCEPTION
/INSTRUCTION
/INSTRUCTION=(opcode[,...])(VAX のみ)
/INTO
/[NO]JSB(VAX のみ)
/LINE
/OVER
/[NO]SHARE
/[NO]SYSTEM
/TERMINATING
/VECTOR_INSTRUCTION(VAX のみ)/MODIFY 修飾子と /RETURN 修飾子は,特定の種類のアドレス式に指定できます。
メモリ・アドレス,または値がシンボリック記憶位置でないアドレス式を指定する場合は,示しているメモリ・バイトで命令が実際に始まっているかを(EXAMINE コマンドを使用して)チェックしてください。命令がこのバイトで始まっていないと,そのバイトを持つ命令を実行したときに実行時エラーが発生します。値がシンボリック記憶位置でないアドレス式を指定してトレースポイントを設定しても,デバッガは指定された記憶位置が命令の開始位置を示しているかどうかをチェックしません。
VAX プロセッサの場合,CALLS ルーチンと CALLG ルーチンは,エントリ・マスクで始まります。
conditional-expression
現在設定されている言語で条件式を指定します。この式は実行がブレークポイントに達したときに評価されます。ブレークポイントが設定されたときではなく,実行がブレークポイントに達すると,デバッガは WHEN 句にある式の構文をチェックします。式が真であれば,デバッガは,ブレークポイントが発生したことを報告します。ブレーク・アクション(DO 句)がブレークポイントと関連付けられている場合は,同時に発生します。式が偽の場合は報告されません。また,DO 句によって指定されたコマンドは実行されず,プログラムの実行は続行されます。command
ブレーク・アクションが実行されたときに,DO 句の一部として実行されるデバッガ・コマンドを指定します。ブレークポイントが設定されたときではなく,DO 句が実行されると,デバッガは DO 句にある式の構文をチェックします。
/ACTIVATING
新しいプロセスがデバッガの制御下に置かれると,デバッガはトレースします。/TERMINATING 修飾子も参照してください。/AFTER:n
指定されたトレースポイントが n 回検出されるまで,トレース・アクションを実行しないことを指定します(nは 10 進整数です)。それ以降は,WHEN 句の条件(指定された場合)が真,検出されるたびにトレースポイントが発生します。SET TRACE/AFTER:1 コマンドは,SET TRACE と同じです。/BRANCH
デバッガは,プログラムの実行中に検出されるすべての分岐命令をトレースします。/INTO 修飾子と /OVER 修飾子も参照してください。/CALL
デバッガは,プログラムの実行中に呼び出し命令(復帰命令を含む)を検出するたびにトレースします。/INTO 修飾子と /OVER 修飾子も参照してください。/EVENT=event-name
指定されたイベントが発生する(現在のイベント機能によってイベントが定義され,そのイベントが検出される)と,デバッガがトレースします。アドレス式に /EVENT を指定すると,そのアドレス式に対して指定されたイベントが発生するたびにデバッガがトレースします。アドレス式に特定のイベント名を指定することはできません。イベント機能は,Ada ルーチンまたは SCAN ルーチンを呼び出すプログラムまたは POSIX Threads サービスを使用するプログラムで使用できます。現在のイベント機能および関連したイベント名を表示するには,SHOW EVENT_FACILITY コマンドを使用します。
/EXCEPTION
デバッガはシグナル通知されるすべての例外をトレースします。トレース・アクションは,アプリケーションで宣言した例外ハンドラが起動される前に実行されます。プログラムが例外を発生すると,SET TRACE/EXCEPTION コマンドの結果として,デバッガは例外を報告しその例外を再度シグナル通知します。その結果,アプリケーションで宣言した例外ハンドラを実行できます。
/INSTRUCTION
/INSTRUCTION[=(opcode[,...])](VAX のみ)
命令コードを指定しないと,デバッガはプログラム実行中に検出されたすべての命令をトレースします。(VAX のみ)命令コードを 1 つまたは複数個指定すると,デバッガは,リスト内で指定したすべての命令コードをトレースします。
ベクタ命令を指定するとき,命令修飾子(/UNALIGNED_DATA,/VECTOR_INSTRUCTION,/MODIFY,/0,または /1)と命令ニーモニックの両方をいれることはできません。
/INTO 修飾子と /OVER 修飾子も参照してください。
/INTO
(省略時の設定。)次の修飾子で設定されているトレースポイント(すなわち,アドレス式が明示的に指定されていない場合)にだけ指定できます。/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...])(VAX のみ)
/LINE
/VECTOR_INSTRUCTION(VAX のみ)/INTO をこれらの修飾子といっしょに使用すると,デバッガは,呼び出されたルーチン内(実行が現在中断されているルーチン内だけでなく)の指定された箇所をトレースします。/INTO 修飾子は省略時の設定であり,/OVERの反対です。
/INTO を使用する場合,/[NO]JSB,/[NO]SHARE,/[NO]SYSTEM の修飾子でトレース・アクションをさらに修飾できます。
/JSB
/NOJSB
(VAX のみ)の場合,/INTO を修飾します。/INTO と次のいずれかの修飾子といっしょに使用します。/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...])
/LINE
/VECTOR_INSTRUCTION/JSB 修飾子は,DIBOL 以外のすべての言語における省略時の値です。これを指定すると,デバッガは,JSB 命令またはCALL 命令によって呼び出されるルーチン内にトレースポイントを設定します。/NOJSB 修飾子(DIBOL の省略時の設定)は,JSB 命令によって呼び出されるルーチン内でトレースポイントを設定しないことを指定します。DIBOL の場合,アプリケーションで宣言したルーチンは CALL 命令によって呼び出され,DIBOL 実行時ライブラリ・ルーチンが JSB 命令によって呼び出されます。
/LINE
デバッガは,プログラム実行中にソース行が検出されるたびにその行の先頭をトレースします。/INTO 修飾子と /OVER 修飾子も参照してください。/MODIFY
指定されたアドレス式が示す記憶位置に命令が値を書き込んで変更したとき,デバッガはトレースを行います。通常の場合,アドレス式は変数名です。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 バイトに戻ります。
/OVER
次のいずれかの修飾子で設定されているトレースポイント(すなわち,アドレス式が明示的に指定されていない場合)だけに指定できます。/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...])(VAX のみ)
/LINE
/VECTOR_INSTRUCTION(VAX のみ)/OVER をこれらの修飾子といっしょに使用すると,(呼び出されたルーチンではなく)現在実行を中断しているルーチン内だけの指定された箇所をデバッガはトレースします。/OVER 修飾子は,/INTO(省略時の設定)の反対です。
/RETURN
指定されたアドレス式(ルーチン名,行番号など)に関連しているルーチンの復帰命令でデバッガがブレークします。復帰命令でブレークすると,ルーチンがアクティブである間ローカル環境を調べること(たとえば,ローカル変数の値を得るなど)ができます。ローカル環境のビューはアーキテクチャにより異なるので注意してください。VAX プロセッサの場合,この修飾子は,CALLS 命令または CALLG 命令で呼び出したルーチンにだけ指定できます。JSB ルーチンでは使用できません。Alpha プロセッサの場合,この修飾子はどのルーチンにも指定できます。
address-expression パラメータは,ルーチン内の命令アドレスです。単なるルーチン名の場合もあります。この場合は,ルーチンの開始アドレスを指定します。ただし,ルーチン内の別の場所を指定することもできます。こうすると,特定のコード・パスを実行したあとに行われる復帰だけを調べることができます。
SET TRACE/RETURN コマンドで SET TRACE と同じアドレス式を指定すると,SET TRACE は取り消されます。
/SHARE(省略時の設定)
/NOSHARE
/INTO を修飾します。/INTO と次のいずれかの修飾子といっしょに使用します。/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...])(VAX のみ)
/LINE
/VECTOR_INSTRUCTION(VAX のみ)/SHARE 修飾子を使用すると,デバッガは共用可能イメージ・ルーチン内でもその他のルーチンの場合と同様にトレースポイントを設定できます。/NOSHARE 修飾子を指定すると,共用可能イメージ内にはトレースポイントは設定されません。
/SILENT
/NOSILENT(省略時の設定)
"trace..." メッセージと,現在の記憶位置のソース行をトレースポイントで表示するかどうかを制御します。/NOSILENT 修飾子を指定すると,メッセージが表示されます。/SILENT 修飾子を指定すると,メッセージとソース行は表示されません。/SILENT 修飾子を指定すると,/SOURCE は上書きされます。/SOURCE
/NOSOURCE(省略時の設定)
現在の記憶位置のソース行をトレースポイントで表示するかどうかを制御します。/SOURCE 修飾子を指定すると,ソース行が表示されます。/NOSOURCE 修飾子を指定すると,ソース行は表示されません。/SILENT 修飾子を指定すると,/SOURCE は上書きされます。SET STEP [NO]SOURCE コマンドも参照してください。/SYSTEM(省略時の設定)
/NOSYSTEM
/INTO を修飾します。/INTO と次のいずれかの修飾子といっしょに使用します。/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...])(VAX のみ)
/LINE
/VECTOR_INSTRUCTION(VAX のみ)/SYSTEM 修飾子を指定すると,他のルーチンだけでなくシステム・ルーチン(P1 空間)内でもデバッガはトレースポイントを設定できます。/NOSYSTEM 修飾子を指定すると,システム・ルーチン内ではトレースポイントは設定されません。
/TEMPORARY
トレースポイントを検出したあとでそのトレースポイントを消去します(トレースポイントを一時的に設定するときに使用します)。/TERMINATING
省略時の設定。プロセスがイメージを終了したときにデバッガがトレースします。単一プロセス・プログラムまたはマルチプロセス・プログラムの最後のイメージが終了すると,デバッガに制御が戻り,そのプロンプトを表示します。/ACTIVATING 修飾子も参照してください。
/VECTOR_INSTRUCTION
(VAX のみ)デバッガは,プログラム実行中に検出したすべてのベクタ命令をトレースします。/INTO 修飾子と /OVER 修飾子も参照してください。
トレースポイントが検出されると,デバッガは次の動作を行います。
- トレースポイント記憶位置でプログラムの実行を中断する。
- トレースポイントの設定時に /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 のみ)
/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 状態に移行するとその時点をトレースします。
前へ | 次へ | 目次 | 索引 |