前へ | 次へ | 目次 | 索引 |
ブレークポイントが検出されると,デバッガは次のいずれかの動作を行います。
- ブレークポイント設定位置でプログラムの実行を中断する。
- ブレークポイントの設定時に /AFTER を指定した場合,AFTER 回数をチェックする。指定された回数に達していないと実行が再開され,デバッガは残りのステップを実行しない。
- ブレークポイントの設定時に WHEN 句を指定した場合,WHEN 句の式を評価する。式の値が偽であれば実行が再開され,デバッガは残りのステップに実行を移さない。
- /SILENT が指定されていない場合,"break..." メッセージを発行して,プログラム制御がブレークポイント設定位置にきたことを報告する。
- ブレークポイントの設定時に /NOSOURCE も /SILENT も指定しないか,または SET STEP NOSOURCE を入力していない場合,実行を中断したソース・コード行を表示する。
- ブレークポイントの設定時に DO 句を指定していれば,その DO 句内のコマンドを実行する。DO 句に GO コマンドが含まれていれば実行を続行し,デバッガは次のステップに移らない。
- プロンプトを表示する。
プログラムの特定の記憶位置にブレークポイントを設定するには,SET BREAK コマンドでアドレス式を指定します。連続したソース行,命令クラス,またはイベントにブレークポイントを設定するには,SET BREAK コマンドで修飾子を指定します。通常はアドレス式か修飾子のどちらかを指定するだけでよく,両方を指定する必要はありません。ただし,/EVENT と /RETURN の場合は両方指定しなければなりません。
/LINE 修飾子は各ソース・コード行ごとにブレークポイントを設定します。
次の修飾子は命令クラスにブレークポイントを設定します。これらの修飾子と /LINE をいっしょに使用すると,デバッガはプログラムの実行中に各命令をトレースするので,実行速度が著しく遅くなります。
/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...])(VAX のみ)
/RETURN
/VECTOR_INSTRUCTION(VAX のみ)次の修飾子は,イベント・クラスにブレークポイントを設定します。
/ACTIVATING
/EVENT=event-name
/EXCEPTION
/SYSEMULATE(Alpha のみ)
/TERMINATING
/UNALIGNED_DATA(Alpha のみ)次の修飾子は,ルーチンを呼び出したときに何が起こるかを決定します。
/INTO
/[NO]JSB(VAX のみ)
/OVER
/[NO]SHARE
/[NO]SYSTEM次の修飾子は,ブレークポイントに達したときにどんな出力を表示するかを決定します。
/[NO]SILENT
/[NO]SOURCE次の修飾子は,ブレークポイントのタイミングと期間を決定します。
/AFTER:n
/TEMPORARYプログラム記憶位置の変更(通常は変数値の変更)をモニタするには,/MODIFY 修飾子を使用します。
現在トレースポイントとして使用されている記憶位置をブレークポイントとして設定すると,トレースポイントは取り消されます。また,逆も同様です。
OpenVMS Alpha システムの場合,SET BREAK/UNALIGNED_DATA コマンドは $START_ALIGN_FAULT_REPORTシステム・サービス・ルーチンを呼び出します。デバッグしているプログラムに,同じ $START_ALIGN_FAULT_REPORT ルーチンへの呼び出しがある場合は,このコマンドを実行しないでください。プログラムを呼び出す前にこのコマンドを実行すると,この呼び出しは異常終了します。このコマンドを実行する前にプログラムが呼び出されると,境界に合っていないデータに対するブレークは設定されません。
ブレークポイントには,ユーザが定義するものと定義済みのものとがあります。ユーザ定義のブレークポイントは,ユーザが SET BREAK コマンドで明示的に設定したブレークポイントです。定義済みのブレークポイントは,デバッグするプログラムの種類(Ada あるいはマルチプロセスなど)によって異なりますが,デバッガの起動時に自動的に設定されます。現在設定されているすべてのブレークポイントを表示するには,SHOW BREAK コマンドを使用します。定義済みのブレークポイントは定義済みのものとして表示されます。
ユーザ定義ブレークポイントと定義済みブレークポイントは,それぞれ別々に設定したり取り消したりします。たとえば,1 つの記憶位置またはイベントに,ユーザ定義ブレークポイントと定義済みブレークポイントの両方を設定することができます。ユーザ定義ブレークポイントを取り消しても,定義済みブレークポイントは影響を受けません。逆も同様です。
関連コマンド
(ACTIVATE,DEACTIVATE,SHOW,CANCEL)BREAK
CANCEL ALL
GO
(SET,SHOW)EVENT_FACILITY
SET STEP [NO]SOURCE
SET TRACE
SET WATCH
STEP
#1 |
---|
DBG> SET BREAK SWAP\%LINE 12 |
このコマンドの場合,SWAP モジュールの行 12 でデバッガがブレークします。
#2 |
---|
DBG> SET BREAK/AFTER:3 SUB2 |
このコマンドの場合,SUB2(ルーチン)が 3 度目以降に実行されたときにデバッガがブレークします。
#3 |
---|
DBG> SET BREAK/NOSOURCE LOOP1 DO(EXAMINE D; STEP; EXAMINE Y; GO) |
このコマンドの場合,LOOP1 のアドレスでデバッガがブレークします。ブレークポイントでは,次のコマンドが順に実行されます。(1)EXAMINE D,(2)STEP,(3)EXAMINE Y,(4)GO。/NOSOURCE 修飾子を指定したので,ブレークポイントではソース・コードが表示されません。
#4 |
---|
DBG> SET BREAK ROUT3 WHEN(X > 4)DO(EXAMINE Y) |
このコマンドの場合,X が 4 より大きい場合に ROUT3 ルーチンでデバッガがブレークします。ブレークポイントでは,EXAMINE Y コマンドが実行されます。WHEN 句の条件式の構文は,言語によって異なります。
#5 |
---|
DBG> SET BREAK/TEMPORARY 1440 DBG> SHOW BREAK breakpoint at 1440 [temporary] DBG> |
このコマンドの場合,メモリ・アドレス 1440 にブレークポイントが一時的に設定されます。検出されるとこのブレークポイントは無効になります。
#6 |
---|
DBG> SET BREAK/LINE |
このコマンドの場合,プログラムの実行中にソース行を検出するたびにその行の先頭でデバッガがブレークします。
#7 |
---|
DBG> SET BREAK/LINE WHEN(X .NE. 0) DBG> SET BREAK/INSTRUCTION WHEN(X .NE. 0) |
この 2 つのコマンドの場合,X が 0 でないときにデバッガがブレークします。最初のコマンドは,実行中に検出されたソース行の先頭で条件を満足しているかどうか調べます。2 つめのコマンドは,各命令で,条件を満足しているかどうかを調べます。WHEN 句の条件式の構文は,言語によって異なります。
#8 |
---|
DBG> SET BREAK/INSTRUCTION=ADDL3 |
(VAX のみ)このコマンドの場合,ADDL3 命令が実行される直前にデバッガがブレークします。
#9 |
---|
DBG> SET BREAK/LINE/INTO/NOSHARE/NOSYSTEM |
このコマンドの場合,各ソース行の先頭でデバッガがブレークします。この行には,呼び出されたルーチン(/INTO)内の行を含み,共用可能イメージ・ルーチン(/NOSHARE)内とシステム・ルーチン(/NOSYSTEM)内の行は含まれません。
#10 |
---|
DBG> SET BREAK/RETURN ROUT4 |
このコマンドの場合,ROUT4 ルーチンの復帰命令を実行する直前にデバッガがブレークします。
#11 |
---|
DBG> SET BREAK/RETURN %LINE 14 |
このコマンドの場合,行 14 を含んでいるルーチンの復帰命令を実行する直前に,デバッガがブレークします。このコマンド書式は,ルーチン内で現在実行が中断しており,そのルーチンの復帰命令でブレークポイントを設定したい場合に便利です。
#12 |
---|
DBG> SET BREAK/EXCEPTION DO(SET MODULE/CALLS; SHOW CALLS) |
このコマンドの場合,例外がシグナル通知されるたびにデバッガがブレークします。このブレークポイントでは,SET MODULE/CALLS コマンドと SHOW CALLS コマンドが実行されます。
#13 |
---|
DBG> SET BREAK/EVENT=RUN RESERVE, %TASK 3 |
このコマンドは 2 つのブレークポイントを設定します。それぞれ RESERVE タスクとタスク 3(タスク ID=3)に関連しています。関連したタスクが RUN 状態に移行するたびに,各ブレークポイントが検出されます。
#14 |
---|
all> SET BREAK/ACTIVATING |
このコマンドの場合,マルチプロセス・プログラムのプロセスがデバッガの制御下に置かれるたびにデバッガがブレークします。
DEFINE コマンドの省略時の修飾子(/ADDRESS,/COMMAND,/PROCESS_SET,または /VALUE)を設定します。
SET DEFINE define-default
define-default
DEFINE コマンドに設定する省略時の値を指定します。次のいずれかのキーワード(それぞれ DEFINE コマンド修飾子に対応しています)を指定できます。
ADDRESS それ以降の DEFINE コマンドは DEFINE/ADDRESS として扱われる。これは省略時の設定である。 COMMAND それ以降の DEFINE コマンドは DEFINE/COMMAND として扱われる。 PROCESS_SET それ以降の DEFINE コマンドは DEFINE/PROCESS_SET として扱われる。 VALUE それ以降の DEFINE コマンドは DEFINE/VALUE として扱われる。
SET DEFINE コマンドは,それ以降の DEFINE コマンドの省略時の修飾子を設定します。SET DEFINE コマンドで指定するパラメータは,DEFINE コマンドの修飾子と同じ名前です。修飾子は,DEFINE コマンドがシンボルをアドレス,コマンド文字列,プロセス・リスト,または値のどれにバインドするかを決定します。別の修飾子を指定すれば,1 つの DEFINE コマンドの実行中に現在の DEFINE コマンドの省略時の設定を上書きできます。現在の DEFINE コマンドの省略時の設定を表示するには,SHOW DEFINE コマンドを使用します。
関連コマンド
DEFINE
DEFINE/PROCESS_SET
DELETE
SHOW DEFINE
SHOW SYMBOL/DEFINED
DBG> SET DEFINE VALUE |
SET DEFINE VALUE コマンドは,それ以降の DEFINE コマンドを DEFINE/VALUE として扱うことを指定します。
EDIT コマンドによって起動するエディタを設定します。
SET EDITOR [command-line]
command-line
EDIT コマンドを使用したときに,指定したエディタをユーザのシステムで開始するためのコマンド行を指定します。/CALLABLE_EDT,/CALLABLE_LSEDIT,または /CALLABLE_TPU を使用した場合は,コマンド行を指定する必要はありません。これらの修飾子を使用しない場合は,EDITコマンドを入力したときに SET EDITOR コマンド行で指定したエディタがサブプロセスとして作成されます。
コマンド行に /CALLABLE_LSEDIT や /CALLABLE_TPU は指定できますが,/CALLABLE_EDTは指定できません。
/CALLABLE_EDT
EDIT コマンドを使用するときに EDT エディタの呼び出し可能なバージョンを起動することを指定します。コマンド行にこの修飾子を指定することはできません("EDT" というコマンド行を使用します)。/CALLABLE_LSEDIT
(VAX のみ)EDIT コマンドを使用するときに DEC ランゲージ・センシティブ・エディタ(LSEDIT)の呼び出し可能なバージョンを起動することを指定します。コマンド行も指定すると,コマンド行は呼び出し可能な LSEDIT に渡されます。コマンド行を指定しないと,省略時のコマンド行は "LSEDIT" となります。/CALLABLE_TPU
EDIT コマンドを使用するときに DEC Text Processing ユーティリティ(DECTPU)の呼び出し可能なバージョンを起動することを指定します。コマンド行も指定すると,コマンド行は呼び出し可能な DECTPU に渡されます。コマンド行を指定しないと,省略時のコマンド行は "TPU" となります。/START_POSITION
/NOSTART_POSITION(省略時の設定)
EDIT コマンドを入力したときに,指定されたコマンド行または省略時のコマンド行に /START_POSITION 修飾子を付けるかどうかを制御します。現在は,DECTPU と D EC ランゲージ・センシティブ・エディタ(TPU または /CALLABLE_TPU,および LSEDIT または/CALLABLE_LSEDIT としてそれぞれ指定されます)だけがこの修飾子を指定できます。/START_POSITION 修飾子は,エディタのカーソルの最初の位置に影響を及ぼします。省略時の設定(/NOSTART_POSITION)では,エディタのカーソルがソース行 1 の先頭に置かれます。デバッガのソース表示でどの行が中央にあるか,また EDIT コマンドで行番号を指定するかどうかは関係ありません。/START_POSITION を指定すると,カーソルは EDIT コマンドで番号で指定した行または現在のソース表示の中央にある行(行番号を指定しない場合)に置かれます。
SET EDITOR コマンドを使用すると,システムにインストールされているエディタを指定できます。通常,SET EDITOR コマンドのパラメータとして指定されたコマンド行は,サブプロセスとして作成され,実行されます。VAX プロセッサの場合,EDT,LSEDIT,または DECTPU を使用すると,これらのエディタを効率よく起動できます。また,/CALLABLE_EDT,/CALLABLE_LSEDIT,または/CALLABLE_TPU を指定すると,それぞれ EDT,LSEDIT,または DECTPU の呼び出し可能なバージョンを EDIT コマンドによって起動できます。LSEDIT と DECTPU の場合は,呼び出し可能なエディタが実行するコマンド行も指定できます。
Alpha プロセッサの場合,/CALLABLE_EDT または /CALLABLE_TPU は使用できますが,/CALLABLE_LSEDIT は使用できません。
関連コマンド
EDIT
(SET,SHOW,CANCEL)SOURCE
SHOW DEFINE
#1 |
---|
DBG> SET EDITOR '@MAIL$EDIT ""' |
このコマンドを指定しておくと,EDIT コマンドを入力したときに,コマンド行 '@MAIL$EDIT ""' を作成し,その結果 MAIL で使用するのと同じエディタが開始されます。
#2 |
---|
DBG> SET EDITOR/CALLABLE_TPU |
このコマンドを指定しておくと,EDIT コマンドを入力したときに,TPU の省略時のコマンド行で呼び出し可能な DECTPU を開始します。
#3 |
---|
DBG> SET EDITOR/CALLABLE_TPU TPU/SECTION=MYSECINI.TPU$SECTION |
このコマンドを指定しておくと,EDIT コマンドを入力したときに,コマンド行 TPU/SECTION=MYSECINI.TPU$SECTION で呼び出し可能な DECTPU を開始します。
#4 |
---|
DBG> SET EDITOR/CALLABLE_EDT/START_POSITION |
このコマンドを指定しておくと,EDIT コマンドを入力したときに,呼び出し可能な EDT を省略時のコマンド行 EDT で開始します。また,このコマンド行には /START_ POSITION 修飾子が付いていますから,編集はデバッガの現在のソース表示の中央にあるソース行から始まります。
前へ | 次へ | 目次 | 索引 |