前へ | 次へ | 目次 | 索引 |
DCL レベルから入力されると,Ctrl/Y はデバッガ制御を受けずに実行されているイメージに割り込みをかけ,ユーザが DCL コマンドの DEBUG でデバッガを起動できるようにします。
注意
デバッグ・セッション中は Ctrl/Y は使用できません。代わりに Ctrl/C を使用するか,SET ABORT_KEY コマンドで設定した同等の強制終了キー・シーケンスを使用してください。
注意
Ctrl/Y-DEBUG シーケンスでデバッガを起動したときは,デバッガの RUN コマンドも RERUN コマンドも使用できません。
[Ctrl/Y]
DCL レベルで Ctrl/Y を押すと,デバッガによる制御を受けずに実行しているイメージに割り込みをかけ,DCL コマンドの DEBUG でデバッガを起動できるようになります。イメージをデバッガの制御下に置くことができるのは,最低でも,イメージが /TRACEBACK 修飾子(/TRACEBACK は LINK コマンドの省略時の設定)でリンクされている場合だけです。
イメージの実行に割り込みをかけるために Ctrl/Y を押すと,制御が DCL に渡されます。そのあと DCL コマンドの DEBUG を入力すると,割り込みをかけられたイメージがデバッガの制御下に置かれます。デバッガはその言語固有のパラメータを,割り込みをかけられたモジュールのソース言語に設定し,プロンプトを表示します。プロンプトが表示されたら,ユーザは SHOW CALLS コマンドを入力することにより,どこで実行が中断されたのかを判断できます。
Ctrl/Y-DEBUG シーケンスは,保持デバッガ(Kept Debugger)の構成では使用できません。
Ctrl/Y-DEBUG シーケンスは,デバッガへの Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースでは使用できません。代わりに,STOP ボタンを使用してください。
デバッグ・セッション中は,CONNECT コマンドを使用して,(同じジョブの)他のプロセスでデバッガ制御を受けずに実行されているイメージをそのデバッグ・セッションに接続できます。
関連コマンド
CONNECT
Ctrl/C
DEBUG(DCL コマンド)
RUN(DCL コマンド)
#1 |
---|
$ RUN/NODEBUG TEST_B ... [Ctrl/Y] Interrupt $ DEBUG Debugger Banner and Version Number Language: ADA, Module: SWAP DBG> |
この例では,RUN/NODEBUG コマンドはデバッガによる制御を受けずに TEST_B イメージを実行します。Ctrl/Y で割り込みをかけます。すると,DEBUG コマンドによってデバッガが起動されます。デバッガはバナーを表示し,割り込みをかけられたモジュール(SWAP)の言語(この場合には Ada)に言語固有のパラメータを設定します。
#2 |
---|
$ RUN/NODEBUG PROG2 ... [Ctrl/Y] Interrupt $ DEBUG Debugger Banner and Version Number Language: FORTRAN, Module: SUB4 predefined trace on activation at SUB4\%LINE 12 in %PROCESS_NUMBER 1 DBG> |
この例では,DEFINE/JOB コマンドによってマルチプロセス・デバッグ構成が設定されます。RUN/NODEBUG コマンドはデバッガの制御を受けずに PROG2 イメージを実行します。Ctrl/Y-DEBUG シーケンスは実行に割り込みをかけ,デバッガを起動します。バナーは新しいデバッグ・セッションが開始されたことを示します。起動時トレースポイントはデバッガがプロセスを制御下に置いたときに実行が割り込みをかけられた場所を表します。
Ctrl/Z は(EXIT と同様に)デバッグ・セッションを終了します。
[Ctrl/Z]
Ctrl/Z についての詳しい説明は,EXIT コマンドを参照してください。
ブレークポイントを無効にします。そのブレークポイントはあとで有効にすることができます。
DEACTIVATE BREAK [address-expression[,...]]
address-expression
無効にするブレークポイントを指定します。ワイルドカード文字のアスタリスク(*)は使用できません。代わりに /ALL 修飾子を使用してください。/EVENT,/PREDEFINED または /USER 以外の修飾子を使用する場合は,アドレス式は指定できません。
/ACTIVATING
前回のSET BREAK/ACTIVATING コマンドで設定されたブレークポイントを無効にします。/ALL
省略時の設定では,すべてのユーザ定義ブレークポイントを無効にします。/PREDEFINED といっしょに使用すると,定義済みブレークポイントはすべて無効になりますが,ユーザ定義ブレークポイントは無効になりません。すべてのブレークポイントを無効にするには /ALL/USER/PREDEFINED を使用します。/BRANCH
前回の SET BREAK/BRANCH コマンドで設定されたブレークポイントを無効にします。/CALL
前回の SET BREAK/CALL コマンドで設定されたブレークポイントを無効にします。/EVENT=event-name
前回の SET BREAK/EVENT=event-name コマンドで設定されたブレークポイントを無効にします。イベント名(および必要であればアドレス式)は SET BREAK/EVENT コマンドで指定したとおりに指定してください。現在のイベント機能とそれに対応するイベント名を表示するには,SHOW EVENT_FACILITY コマンドを使用します。
/EXCEPTION
前回の SET BREAK/EXCEPTION コマンドで設定されたブレークポイントを無効にします。/HANDLER
前回の SET BREAK/HANDLER コマンドによって設定されたブレークポイントを無効にします。/INSTRUCTION
前回の SET BREAK/INSTRUCTION コマンドで設定されたブレークポイントを無効にします。/LINE
前回の SET BREAK/LINE コマンドで設定されたブレークポイントを無効にします。/PREDEFINED
ユーザ定義ブレークポイントにはまったく影響を及ぼさずに,指定の定義済みブレークポイントを無効にします。/ALL といっしょに使用すると,定義済みブレークポイントがすべて無効になります。/SYSEMULATE
(Alpha のみ)前に実行した SET BREAK/SYSEMULATE コマンドによって設定されたブレークポイントを無効にします。/TERMINATING
前回の SET BREAK/TERMINATING コマンドで設定されたブレークポイントを無効にします。/UNALIGNED_DATA
(Alpha のみ)前回の SET BREAK/UNALIGNED_DATA コマンドで設定されたブレークポイントを無効にします。/USER
ユーザ定義ブレークポイントを無効にします。すべてのユーザ定義ブレークポイントを無効にするには,/ALL 修飾子を使用します。/VECTOR_INSTRUCTION
(VAX のみ)前回の SET BREAK/VECTOR_INSTRUCTION コマンドで設定されたブレークポイントを無効にします。
ユーザ定義ブレークポイントは SET BREAK コマンドで設定すると有効になります。定義済みブレークポイントは省略時の状態で有効になります。1 つまたは複数のブレークポイントを無効にするには DEACTIVATE BREAK コマンドを使用します。ブレークポイントを無効にすると,デバッガはプログラムの実行中そのブレークポイントを無視します。無効にされたブレークポイントを有効にするには,ACTIVATE BREAK コマンドを使用します。ユーザ定義ブレークポイントと定義済みブレークポイントは別々に有効にしたり,無効にしたりすることができます。ブレークポイントを有効にしたり無効にしたりすることにより,プログラムの実行や再実行のときに,ブレークポイントを取り消して再設定する手間をかけずに,ブレークポイントを使用したり使用しなかったりすることができます。省略時の設定で RERUN コマンドを実行すると,すべてのブレークポイントの現在の状態(有効か無効か)が保存されます。
ブレークポイントが無効になっているかどうかを確かめるには,SHOW BREAK コマンドを使用します。
関連コマンド
CANCEL ALL
RERUN
(SET,SHOW,CANCEL,ACTIVATE)BREAK
(SET,SHOW)EVENT_FACILITY
#1 |
---|
DBG> DEACTIVATE BREAK MAIN\LOOP+10 |
このコマンドはアドレス式 MAIN\LOOP+10 で設定されたユーザ定義ブレークポイントを無効にします。
#2 |
---|
DBG> DEACTIVATE BREAK/ALL |
このコマンドはすべてのユーザ定義ブレークポイントを無効にします。
以前に設定したあと無効にしたトレースポイントを有効にします。
DEACTIVATE TRACE [address-expression[,...]]
address-expression
有効にするトレースポイントを指定します。ワイルドカード文字のアスタリスク(*)は使用できません。代わりに /ALL 修飾子を使用してください。/EVENT,/PREDEFINED,/USER 以外の修飾子を使用する場合は,アドレス式は指定できません。
/ACTIVATING
前回の SET TRACE/ACTIVATING コマンドで設定されたトレースポイントを有効にします。/ALL
省略時の設定では,すべてのユーザ定義トレースポイントを有効にします。/PREDEFINED といっしょに使用すると,定義済みトレースポイントはすべて有効になりますが,ユーザ定義トレースポイントは有効になりません。すべてのトレースポイントを有効にするには /ALL/USER/PREDEFINED を使用します。/BRANCH
前回の SET TRACE/BRANCH コマンドで設定されたトレースポイントを有効にします。/CALL
前回の SET TRACE/CALL コマンドで設定されたトレースポイントを有効にします。/EVENT=event-name
前回の SET TRACE/EVENT=event-name コマンドで設定されたトレースポイントを有効にします。イベント名(および必要であればアドレス式)は SET TRACE/EVENT コマンドで指定したとおりに指定してください。現在のイベント機能とそれに対応するイベント名を表示するには,SHOW EVENT_FACILITY コマンドを使用します。
/EXCEPTION
前回の SET TRACE/EXCEPTION コマンドで設定されたトレースポイントを有効にします。/INSTRUCTION
前回の SET TRACE/INSTRUCTION コマンドで設定されたトレースポイントを有効にします。/LINE
前回の SET TRACE/LINE コマンドで設定されたトレースポイントを有効にします。/PREDEFINED
ユーザ定義トレースポイントにはまったく影響を及ぼさずに指定の定義済みトレースポイントを有効にします。/ALL といっしょに使用すると,定義済みトレースポイントがすべて有効になります。/TERMINATING
前回の SET TRACE/TERMINATING コマンドで設定されたトレースポイントを有効にします。/USER
定義済みトレースポイントにはまったく影響を及ぼさずに指定のユーザ定義トレースポイントを有効にします。/ALL といっしょに使用すると,ユーザ定義トレースポイントがすべて有効になります。/PREDEFINED を指定した場合を除き,/USER 修飾子が省略時の設定です。/VECTOR_INSTRUCTION
(VAX のみ)前回の SET TRACE/VECTOR_INSTRUCTION コマンドで設定されたトレースポイントを有効にします。
ユーザ定義トレースポイントは SET TRACE コマンドで設定すると有効になります。定義済みトレースポイントは省略時の設定で有効になります。DEACTIVATE TRACE を使用して無効にした 1 つまたは複数のトレースポイントを有効にするにはACTIVATE TRACE コマンドを使用します。トレースポイントを有効にしたり無効にしたりすることにより,プログラムの実行や再実行のときに,トレースポイントを取り消して再設定する手間をかけずに,トレースポイントを使用したり使用しなかったりすることができます。省略時の設定でRERUN コマンドを実行すると,すべてのトレースポイントの現在の状態(有効か無効か)が保存されます。
有効や無効にするのはユーザ定義トレースポイントと定義済みトレースポイントのどちらか一方でも両方でもかまいません。トレースポイントが有効になっているかを確かめるには,SHOW TRACE コマンドを使用してください。
関連コマンド
CANCEL ALL
RERUN
(SET,SHOW)EVENT_FACILITY
(SET,SHOW,CANCEL,ACTIVATE)TRACE
#1 |
---|
DBG> DEACTIVATE TRACE MAIN\LOOP+10 |
このコマンドは MAIN\LOOP+10 の位置にあるユーザ定義トレースポイントを有効にします。
#2 |
---|
DBG> DEACTIVATE TRACE/ALL |
このコマンドはユーザ定義トレースポイントをすべて有効にします。
以前に設定したあと無効にしたウォッチポイントを有効にします。
DEACTIVATE WATCH [address-expression[,...]]
address-expression
有効にするウォッチポイントを指定します。高級言語を使用している場合,これは通常,変数の名前になります。ワイルドカード文字のアスタリスク(*)は使用できません。代わりに /ALL 修飾子を使用してください。/ALL を指定する場合は,アドレス式は指定できません。
/ALL
すべてのウォッチポイントを有効にします。
ウォッチポイントは SET WATCH コマンドで設定すると有効になります。DEACTIVATE WATCH で無効にした 1 つまたは複数のウォッチポイントを有効にするには ACTIVATE WATCH コマンドを使用します。ウォッチポイントを有効にしたり無効にしたりすることにより,プログラムの実行や再実行のときに,ウォッチポイントを取り消して再設定する手間をかけずに,ウォッチポイントを使用したり使用しなかったりすることができます。
省略時の設定では,RERUN コマンドを実行すると,すべての静的ウォッチポイントの現在の状態(有効か無効か)が保存されます。特定の非静的ウォッチポイントは,(実行を再開する)メイン・プログラム・ユニットを基準にした,ウォッチの対象になっている変数の有効範囲によって保存されることもあり,保存されないこともあります。
ウォッチポイントが有効になっているかを確かめるには,SHOW WATCH コマンドを使用します。
関連コマンド
CANCEL ALL
RERUN
(SET,SHOW,CANCEL,ACTIVATE)WATCH
#1 |
---|
DBG> DEACTIVATE WATCH SUB2\TOTAL |
このコマンドはモジュール SUB2 の中の TOTAL 変数でのウォッチポイントを有効にします。
#2 |
---|
DBG> DEACTIVATE WATCH/ALL |
このコマンドは設定したあと無効にしたすべてのウォッチポイントを有効にします。
コマンド・プロシージャの中で仮パラメータを宣言します。これにより,@(実行プロシージャ)コマンドの入力時に実パラメータを渡すことができます。
DECLARE p-name:p-kind [,p-name:p-kind[,...]]
p-name
コマンド・プロシージャの中で宣言される仮パラメータ(シンボル)を指定します。(連続する 2 つのコンマまたはコマンドの最後のコンマで表される)空パラメータは指定できません。
p-kind
仮パラメータのパラメータ種別を指定します。有効なキー・ワードは次のとおりです。
ADDRESS 実パラメータをアドレス式として解釈することを指定します。DEFINE/ADDRESS p-name= actual-parameter と同じ働きです。 COMMAND 実パラメータをコマンドとして解釈することを指定します。DEFINE/COMMAND p-name = actual-parameter コマンドと同じ働きです。 VALUE 実パラメータを現在の言語での値式として解釈することを指定します。DEFINE/VALUE p-name = actual-parameter と同じ働きです。
DECLARE コマンドはコマンド・プロシージャの中でだけ有効です。DECLARE コマンドは,@(実行プロシージャ)コマンドに続くコマンド行に指定された 1 つまたは複数の実パラメータを,コマンド・プロシージャの中で宣言された仮パラメータ(シンボル)にバインドします。
DECLARE コマンドで指定される各 p-name:p-kind の組は 1 つの仮パラメータを 1 つの実パラメータにバインドします。仮パラメータはデバッガがパラメータ宣言を処理する順番で実パラメータにバインドされます。1 つの DECLARE コマンドに複数の仮パラメータを指定すると,左端の仮パラメータが最初の実パラメータにバインドされ,次の仮パラメータが 2 番目の実パラメータにバインドされるというようになります。DECLARE コマンドをループで使用すると,仮パラメータはループの 1 回目の最初の実パラメータにバインドされます。そして同じ仮パラメータが 2 回目の 2 番目の実パラメータにバインドされるというようになります。
各パラメータ宣言は DEFINE コマンドと同様に動作します。指定されたパラメータ種別に従って,アドレス式,コマンドまたは現在の言語での値式に仮パラメータを対応づけるのです。仮パラメータそのものは DEFINE コマンドで受け入れられるものと一致しており,実際に DELETE コマンドでシンボル・テーブルから削除することができます。
%PARCNT 組み込みシンボルはコマンド・プロシージャの中でだけ使用できます。これを使用すれば,可変数のパラメータをコマンド・プロシージャに渡すことができます。%PARCNT の値はコマンド・プロシージャに渡される実パラメータの数です。
関連コマンド
@(実行プロシージャ)
DEFINE
DELETE
#1 |
---|
! ***** コマンド・プロシージャ EXAM.COM ***** SET OUTPUT VERIFY DECLARE K:ADDRESS EXAMINE K DBG> @EXAM ARR4 %DEBUG-I-VERIFYIC, entering command procedure EXAM DECLARE K:ADDRESS EXAMINE K PROG_8\ARR4 (1): 18 (2): 1 (3): 0 (4): 1 %DEBUG-I-VERIFYIC, exiting command procedure EXAM DBG> |
この例では,DECLARE K:ADDRESS コマンドはコマンド・プロシージャ EXAM.COM の内部の仮パラメータ K を宣言しています。EXAM.COM を実行すると,EXAM.COM に渡される実パラメータはアドレス式として解釈され,EXAMINE K コマンドはそのアドレス式の値を表示します。SET OUTPUT VERIFY コマンドを実行すると,コマンドをデバッガが読んだときに,それらのコマンドがエコーバックされます。
デバッガ・プロンプトが表示された状態で,@EXAM ARR4 コマンドは EXAM.COM を実行し,実パラメータ ARR4 を渡します。EXAM.COM の中では,ARR4 はアドレス式(この場合には配列変数)として解釈されます。
#2 |
---|
! ***** デバッガ・コマンド・プロシージャ EXAM_GO.COM ***** DECLARE L:ADDRESS, M:COMMAND EXAMINE L; M DBG> @EXAM_GO X "@DUMP" |
この例では,コマンド・プロシージャ EXAM_GO.COM はアドレス式(L)とコマンド文字列(M)の 2 つのパラメータを受け付けます。そしてアドレス式がチェックされ,コマンドが実行されます。
デバッガ・プロンプトが表示された状態で,@EXAM_GO X "@DUMP" コマンドは EXAM_GO.COM を実行し,アドレス式 X とコマンド文字列の @DUMP を渡します。
#3 |
---|
! ***** デバッガ・コマンド・プロシージャ VAR.DBG ***** SET OUTPUT VERIFY FOR I = 1 TO %PARCNT DO(DECLARE X:VALUE; EVALUATE X) DBG> @VAR.DBG 12,37,45 %DEBUG-I-VERIFYIC, entering command procedure VAR.DBG FOR I = 1 TO %PARCNT DO(DECLARE X:VALUE; EVALUATE X) 12 37 45 %DEBUG-I-VERIFYIC, exiting command procedure VAR.DBG DBG> |
この例では,コマンド・プロシージャ VAR.DBG が受け取るパラメータの個数は固定されていません。パラメータの個数は組み込みシンボル %PARCENT に格納されます。
デバッガ・プロンプトが表示された状態で,@VAR.DBG コマンドは VAR.DBG を実行し,実パラメータ 12,37,45 を渡します。したがって,%PARCNT の値は 3 になり,FOR ループが 3 回繰り返されます。FOR ループにより,DECLARE コマンドは 3 つの実パラメータ(12 から始まる)の各々を X の新しい宣言にバインドするようになります。各実パラメータは現在の言語での値式として解釈され,EVALUATE X コマンドがその値を表示します。
前へ | 次へ | 目次 | 索引 |