[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ 索引 ]
[ DOC Home ]
この章では,アルファベット順にデバッガ・コマンドを説明しています。
デバッガ・コマンド・プロシージャを実行します。
@file-spec [parameter[, . . . ]]
省略時の設定では,コマンド・プロシージャから読み込まれたコマンドはエコーバックされません。SET OUTPUT VERIFY コマンドを入力すると,コマンド・ プロシージャから読み込まれたコマンドはすべて,DBG$OUTPUTによる指定に従い, 現在の出力装置にエコーバックされます(省略時の出力装置はSYS$OUTPUT) 。
コマンド・プロシージャへのパラメータの引き渡しについての詳しい説明は,DECLARE コマンドを参照してください。
関連コマンド
DBG> SET ATSIGN USER:[JONES.DEBUG].DBG DBG> SET OUTPUT VERIFY DBG> @CHECKOUT %DEBUG-I-VERIFYICF, entering command procedure CHECKOUT SET MODULE/ALL SET BREAK SUB1 GO break at routine PROG5\SUB2 EXAMINE X PROG5\SUB2\X: 376 . . . %DEBUG-I-VERIFYICF, exiting command procedure MAIN DBG>この例の,SET ATSIGNコマンドは,デバッガ・コマンド・プロシージャが省略時の設定ではUSER:[JONES.DEBUG] の中にあり,ファイル・タイプとして.DBG を持つように設定しています。@CHECKOUTコマンドはコマンド・プロシージャUSER:[JONES.DEBUG]CHECKOUT.DBG を実行します。SET OUTPUT VERIFYコマンドが指定されているため,デバッガは@CHECKOUTコマンドの中のコマンドをエコーバックします。
以前に無効に設定したブレークポイントを有効にします。
ACTIVATE BREAK [address-expression[, . . . ]]
現在のイベント機能とそれに対応するイベント名を表示するには,SHOW EVENT_FACILITYコマンドを使用します。
ブレークポイントを有効にしたり無効にしたりすることにより,プログラムの実行や再実行のときに, ブレークポイントを取り消して再設定する手間をかけずに, ブレークポイントを使用したり使用しなかったりすることができます。 省略時の設定でRERUNコマンドを実行すると,すべてのブレークポイントの現在の状態( 有効か無効か)が保存されます。
有効や無効にするのはユーザ定義ブレークポイントと定義済みブレークポイントのどちらか一方でも両方でもかまいません。 ブレークポイントが有効になっているかを確かめるには,SHOW BREAK コマンドを使用します。
関連コマンド
DBG> ACTIVATE BREAK MAIN\LOOP+10このコマンドはアドレス式MAIN\LOOP+10で設定されたユーザ定義ブレークポイントを有効にします。
DBG> ACTIVATE BREAK/ALLこのコマンドはすべてのユーザ定義ブレークポイントを有効にします。
DBG> ACTIVATE BREAK/ALL/USER/PREDEFINEDこのコマンドはユーザ定義ブレークポイントと定義済みブレークポイントの両方を含めたすべてのブレークポイントを有効にします。
以前に設定したあと無効にしたトレースポイントを有効にします。
ACTIVATE TRACE [address-expression[, . . . ]]
現在のイベント機能とそれに対応するイベント名を表示するには,SHOW EVENT_FACILITYコマンドを使用します。
トレースポイントを有効にしたり無効にしたりすることにより,プログラムの実行や再実行のときに, トレースポイントを取り消して再設定する手間をかけずに, トレースポイントを使用したり使用しなかったりすることができます。 省略時の設定でRERUNコマンドを実行すると,すべてのトレースポイントの現在の状態( 有効か無効か)が保存されます。
有効や無効にするのはユーザ定義トレースポイントと定義済みトレースポイントのどちらか一方でも両方でもかまいません。 トレースポイントが有効になっているかを確かめるには,SHOW TRACE コマンドを使用してください。
関連コマンド
DBG> ACTIVATE TRACE MAIN\LOOP+10このコマンドはMAIN\LOOP+10の位置にあるユーザ定義トレースポイントを有効にします。
DBG> ACTIVATE TRACE/ALLこのコマンドはユーザ定義トレースポイントをすべて有効にします。
以前に設定したあと無効にしたウォッチポイントを有効にします。
ACTIVATE WATCH [address-expression[, . . . ]]
ウォッチポイントを有効にしたり無効にしたりすることにより,プログラムの実行や再実行のときに, ウォッチポイントを取り消して再設定する手間をかけずに, ウォッチポイントを使用したり使用しなかったりすることができます。
省略時の設定では,RERUNコマンドを実行すると,すべての静的ウォッチポイントの現在の状態( 有効か無効か)が保存されます。特定の非静的ウォッチポイントは,( 実行を再開する)メイン・プログラム・ユニットを基準にした, ウォッチの対象になっている変数の有効範囲によって保存されることもあり, 保存されないこともあります。
ウォッチポイントが有効になっているかを確かめるには,SHOW WATCHコマンドを使用します。
関連コマンド
DBG> ACTIVATE WATCH SUB2\TOTALこのコマンドはモジュールSUB2の中のTOTAL変数でのウォッチポイントを有効にします。
DBG> ACTIVATE WATCH/ALLこのコマンドは設定したあと無効にしたすべてのウォッチポイントを有効にします。
端末の制御を現在のプロセスから他のプロセスに渡します。
ATTACH process-name
関連コマンド
DBG> SPAWN $ ATTACH JONES %DEBUG-I-RETURNED, control returned to process JONES DBG> ATTACH JONES_1 $この例では,一連のコマンドによりデバッガ(現在JONESというプロセスで実行中) からJONES_1という名前のサブプロセスが作成され,作成されたサブプロセスに接続します。
DBG> ATTACH "Alpha One" $この例は,スペース文字を含むプロセス名を二重引用符で囲む方法を示しています。
プログラムにリンクされたルーチンを呼び出します。
CALL routine-name [(argument[, . . . ])]
%ADDR | (CおよびC++を除く,省略時の設定)引数をアドレスで渡します。
形式は次のとおりです。
CALL routine-name (%ADDR address-expression) デバッガはアドレス式を評価し,そのアドレスを指定されたルーチンに渡します。(X などの)単純な変数の場合,Xのアドレスがルーチンに渡されます。 この受け渡し方法はFortranがROUTINE(X)をインプリメントする方法です。 つまり,命名された変数の場合,%ADDRの使用はFortranでの参照による呼び出しに対応します。 ただし他の式の場合には,参照によって呼び出すには%REF 関数を使用しなければなりません。(配列,レコード,アクセス・ タイプのように)複雑な変数または複合変数の場合,%ADDRを指定するとアドレスが渡されますが, 呼び出されたルーチンは渡されたデータを正しく処理しない場合があります。% ADDR を使用するときは,リテラル値( 数字または数字からなる式)は指定できません。 |
%DESCR | 引数をディスクリプタ渡しします。形式は次のとおりです。
CALL routine-name (%DESCR language-expression) デバッガは言語式を評価し,値を記述するための標準ディスクリプタを作成します。 作成したディスクリプタが指定されたルーチンに渡されます。 この方法は文字列をFORT RANルーチンに渡す場合などに使用できます。 |
%REF | 引数を参照渡しします。
形式は次のとおりです。
CALL routine-name (%REF language-expression) デバッガは言語式を評価し,評価結果の値を指すポインタを呼び出し先ルーチンに渡します。 この受け渡し方法はFortranが式の結果を渡す方法に対応します。 |
%VAL | (CおよびC++
の省略時の値)引数を値渡しします。形式は次のとおりです。
CALL routine-name (%VAL language-expression) デバッガは言語式を評価し,値を呼び出し先ルーチンに直接渡します。 |
ベクタ型プロセッサの状態は次の情報で構成されます。
ルーチンを実行するためにCALLコマンドを使用すると,ルーチンの実行によって次のようにベクタ型プロセッサの状態が変わる可能性があります。
/SAVE_VECTOR_STATE修飾子は呼び出し先ルーチンの実行が終了したあと, CALLコマンドの実行前に存在していたベクタ型プロセッサの状態を復元することをデバッガが指定します。 これにより,呼び出し先ルーチンの実行が終了した後, 次のことが保証されます。
/NOSAVE_VECTOR_STATE修飾子(これが省略時の設定)は,CALLコマンドの実行前に存在していたベクタ型プロセッサの状態を, 呼び出し先ルーチンの実行が終了したあと, 復元しないことをデバッガが指定します。この場合, ルーチンの呼び出し後のベクタ型プロセッサの状態は,呼び出し先ルーチンによる作用があればそれによって決まります。
/[NO]SAVE_VECTOR_STATE修飾子は汎用レジスタにはまったく影響しません。 汎用レジスタの値は,CALLコマンドでルーチンが実行されると必ず保存され, 復元されます。
CALLコマンドを入力すると,デバッガは次の処理を行います。詳しい説明は, 修飾子の説明を参照してください。
デバッガは呼び出し先ルーチンがプロシージャ呼び出し標準( 『OpenVMS Calling Standard』を参照)に従っているものとみなします。 ただし,デバッガはサポートされているあらゆる言語に対する引数の受け渡し方法全部についての知識を持っているわけではありません。 したがって,パラメータの受け渡し方法,たとえば,CALL SUB1(X)ではなくCALL SUB1(%VAL X) を使用するなどを指定する必要があるかもしれません。 ルーチンへ引数を引き渡す方法についての詳しい説明は,各言語のマニュアルを参照してくさい。
現在の言語がCまたはC++の場合には,省略時の設定により,CALLコマンドは参照によってではなく, 値によって引数を渡します。さらに,受け渡しメカニズム・ レキシカル(%REFや%VALなど)を使用せずに,次の引数を渡すことができます。
ルーチンに読み込み専用ではないパラメータが含まれている場合, パラメータに割り当てられている値は可視状態ではなく,値へのアクセスは確実ではありません。 これは,デバッガが,プログラム引き数ではなく内部引数リストのパラメータ値を調整するためです。 値の変化を調べるには, パラメータの代わりに静的変数を使用してみてください。
浮動小数点パラメータは,F浮動形式の値で渡すことができます。CALLコマンドは, 浮動小数点値がF浮動形式で渡されるとみなします。浮動少数点値の引き渡しは,F 浮動以外の形式ではサポートされていないため,予測できない結果になります( 後述の例を参照)。
SET BREAK/EXCEPTIONコマンドまたはSTEP/EXCEPTIONコマンドにより発生する例外ブレークポイントでの一般的なデバッグ方法は,CALL コマンドでダンプ・ ルーチンを呼び出すことです。例外ブレークポイントでCALLコマンドを入力すると, 呼び出し先ルーチンの中で以前に設定されていたブレークポイント, トレースポイントまたはウォッチポイントは,デバッガが例外コンテキストを失わないようにするために一時的に無効になります。 ただし,例外ブレークポイント以外の位置でCALLコマンドを入力した場合には, このようなイベントポイントはアクティブになります。
例外ブレークポイントが検出されると,アプリケーションで宣言された条件ハンドラが起動される前に例外が中断されます。 例外ブレークポイントでは,CALL コマンドでルーチンを実行したあとにGOコマンドまたはSTEPコマンドを入力すると, デバッガが例外を再度シグナル通知します(GOコマンドとSTEP コマンドを参照)。
Alphaプロセッサでは,CALLコマンドで起動されたルーチンの 前に起動されたルーチンはデバッグできません。 たとえば,プログラムをMAINルーチンで終了し,ブレークポイントをSORT ルーチンに設定するとします。そこでデバッガ・コマンドのCALL SORTを実行します。SORT ルーチンのデバッグ中は,MAINルーチンはデバッグできません。 まずSORTルーチンへの呼び出しから戻らなければなりません。
マルチプロセス・プログラムをデバッグするためにマルチプロセス・デバッグ構成を使用している場合( 論理名DBG$PROCESSの値がMULTIPROCESSの場合) には,CALLコマンドは可視プロセスのコンテキストで実行されますが,(SET PROCESS/HOLD コマンドによって)保留されていない他のプロセスのイメージも実行できます。CALL コマンドを1つまたは複数のプロセスにブロードキャストするためにDO コマンドを使用すると,CALLコマンドは保留されていない指定された各プロセスのコンテキストで実行されますが, 保留されていない他のプロセスのイメージも実行できます。どの場合も, 可視プロセスの保留状態は無視されます。
マルチプロセス・プログラムをデバッグするためにマルチプロセス・デバッグ構成を使用している場合, 実行がプロセスの中でどのように継続されるかはSET MODE [NO]INTERRUPT コマンドの入力の有無によって決まります。 省略時の設定(SET MODE INTERRUPT)では,実行はプロセスのどれかで中断されるまで続きます。 中断された時点で,イメージを実行していた他のプロセスで実行に割り込みがかかり, デバッガは入力を要求します。
関連コマンド
DBG> CALL SUB1(X) value returned is 19 DBG>このコマンドは,パラメータXを使用してサブルーチンSUB1を呼び出します( 省略時の設定により,Xのアドレスが渡されます)。このルーチンは19 という値を戻します。
DBG> CALL SUB(%REF 1) value returned is 1 DBG>この例は,数値リテラル1のある記憶位置へのポインタをSUBルーチンに渡します。
DBG> SET MODULE SHARE$LIBRTL DBG> CALL LIB$SHOW_VM 1785 calls to LIB$GET_VM, 284 calls to LIB$FREE_VM, 122216 bytes still allocated, value returned is 00000001 DBG>この例は,(共用可能イメージLIBRTLの) LIB$SHOW_VM実行時ライブラリ・ ルーチンを呼び出して,メモリ統計情報を表示しています。SET MODULEコマンドはLIBRTL 内のユニバーサル・シンボル(ルーチン名)をメイン・イメージの中で可視状態にします。 詳しい説明はSHOW MODULE/SHAREコマンドを参照してください。
DBG> CALL testsub (%val 11.11, %val 22.22, %val 33.33)この例は,関数プロトタイプ
void testsub (float, float,
float)
を持つCサブルーチンを仮定した,値による浮動小数点パラメータの引き渡しています。
浮動小数点パラメータは,F浮動形式で渡されます。
SUBROUTINE CHECK_TEMP(TEMPERATURE,ERROR_MESSAGE) REAL TOLERANCE /4.7/ REAL TARGET_TEMP /92.0/ CHARACTER*(*) ERROR_MESSAGE IF (TEMPERATURE .GT. (TARGET_TEMP + TOLERANCE)) THEN TYPE *,'Input temperature out of range:',TEMPERATURE TYPE *,ERROR_MESSAGE ELSE TYPE *,'Input temperature in range:',TEMPERATURE END IF RETURN END DBG> CALL CHECK_TEMP(%REF 100.0, %DESCR 'TOLERANCE-CHECK 1 FAILED') Input temperature out of range: 100.0000 TOLERANCE-CHECK 1 FAILED value returned is 0 DBG> CALL CHECK_TEMP(%REF 95.2, %DESCR 'TOLERANCE-CHECK 2 FAILED') Input temperature in range: 95.2000 value returned is 0 DBG>この例のソース・コードは,2つのパラメータ,TEMPERATURE (実数)とERROR_MESSAGE ( 文字列)を受け付けるFortranルーチン(CHECK_TEMP)のソース・ コードです。ルーチンは,温度の値によってさまざまな出力を表示します。2 つのCALLコマンドはそれぞれ参照で温度値とディスクリプタでエラー・ メッセージを渡します。このルーチンには正式な戻り値がないため, 返される値は未定義となり,この場合には0になります。
ブレークポイント,トレースポイント,ウォッチポイントをすべて取り消します。 有効範囲と型をそれぞれの省略時の値に戻します。SET MODEコマンドで設定された行モード, シンボリック・モード,G浮動モードをそれぞれの省略時の値に戻します。
CANCEL ALL
DBG> SET MODE LINE,SYMBOLIC,NOG_FLOAT
CANCEL ALLコマンドは実行時シンボル・テーブルに含まれている現在の言語設定やモジュールには影響しません。
関連コマンド
DBG> CANCEL ALLこのコマンドはすべてのユーザ定義のブレークポイントとトレースポイント, すべてのウォッチポイントを取り消し,有効範囲,型,一定のモードをそれぞれの省略時の値に戻します。 この例では,定義済みのブレークポイント, トレースポイントはありません。
DBG> CANCEL ALL %DEBUG-I-PREDEPTNOT, predefined eventpoint(s) not canceledこのコマンドはすべてのユーザ定義のブレークポイントとトレースポイント, すべてのウォッチポイントを取り消し,有効範囲,タイプ,一定のモードをそれぞれの省略時の値に戻します。 この例では,定義済みのブレークポイント, トレースポイントがいくつかあります。それらは省略時の設定では取り消されません。
DBG> CANCEL ALL/PREDEFINEDこのコマンドは定義済みのブレークポイント,トレースポイントをすべて取り消し, 有効範囲,タイプ,一定のモードをそれぞれの省略時の値に戻します。 ユーザ定義のブレークポイントやトレースポイントは影響を受けません。
ブレークポイントを取り消します。
CANCEL BREAK [address-expression[, . . . ]]
ユーザ定義ブレークポイントと定義済みブレークポイントは,それぞれ別々に設定したり取り消したりします。 たとえば,1つの記憶位置またはイベントに, ユーザ定義ブレークポイントと定義済みブレークポイントの両方を設定することができます。 ユーザ定義ブレークポイントを取り消しても, 定義済みブレークポイントは影響を受けません。逆も同様です。
ユーザ定義ブレークポイントだけを取り消すには,CANCEL BREAKコマンドを指定するときに/PREDEFINED を指定しないでください(省略時の設定は/USER) 。定義済みブレークポイントだけを取り消すには,/USERではなく/PREDEFINED を指定します。定義済みブレークポイントとユーザ定義ブレークポイントを両方とも取り消すには,/PREDEFINED と/USERを両方指定します。
通常,SET BREAKコマンドはユーザ定義ブレークポイントに対してだけ使用されますが,CANCEL BREAK コマンドの作用はSET BREAKコマンドの作用の反対です。 したがって,特定の記憶位置に設定されたブレークポイントを取り消すには,CANCEL BREAK コマンドでそれと同じ記憶位置(アドレス式) を指定します。命令またはイベントのクラスに対して設定されたブレークポイントを取り消すには, 対応する修飾子(/LINE,/BRANCH, /ACTIVATING,/EVENT=など)を使用して命令またはイベントのクラスを指定します。 詳しくは,修飾子の説明を参照してください。
ブレークポイントを取り消す手間をかけずに,デバッガにそのブレークポイントを無視させたい場合( たとえば,プログラムを再実行するときにブレークポイントを使用したり, 使用しない場合)には,CANCEL BREAKコマンドではなくDEACTIVATE BREAK コマンドを使用してください。あとで, (ACTIVATE BREAKを使用して)そのブレークポイントを有効にすることができます。
関連コマンド
DBG> CANCEL BREAK MAIN\LOOP+10このコマンドはアドレス式MAIN\LOOP+10で設定されたユーザ定義ブレークポイントを取り消します。
DBG> CANCEL BREAK/ALLこのコマンドはユーザ定義ブレークポイントをすべて取り消します。
DBG> CANCEL BREAK/ALL/USER/PREDEFINEDこのコマンドはユーザ定義ブレークポイントと定義済みブレークポイントをすべて取り消します。
DBG_1> CANCEL BREAK/ACTIVATINGこのコマンドは前回のユーザ定義SET BREAK/ACTIVATINGコマンドを取り消します。 この結果,デバッガは新しいプロセスがデバッガの制御下に入っても実行を一時停止しません。
DBG> CANCEL BREAK/EVENT=EXCEPTION_TERMINATED/PREDEFINEDこのコマンドは未処理例外が原因でタスク終端に設定された定義済みブレークポイントを取り消します。 このブレークポイントはAdaプログラムとDECthreads またはAdaルーチンを呼び出すプログラムに対しては定義済みのものです。
画面表示を永久に削除します。
CANCEL DISPLAY [display-name[, . . . ]]
/SUFFIX修飾子は,表示定義または表示定義に関連したキー定義を指定する場合のコマンド・ プロシージャで主に使用されます。
process-identifier-typeには次のいずれかのキーワードを指定できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PRO CESSコマンドの実行で表意される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別子(PID) が付きます。 |
/SUFFIXのあとにprocess-identifier-typeキーワードを指定しないと, プロンプトの接尾辞がディスプレイ名の省略時の値として使用されます(SET PROMPT/SUFFIX コマンドを参照してください)。
PROMPT表示は取り消せません。
関連コマンド
DBG> CANCEL DISPLAY SRC2このコマンドはSRC2表示を削除します。
DBG> CANCEL DISPLAY/ALLこのコマンドはPROMPT表示を除き,すべての表示を削除します。
共用可能イメージのシンボル・テーブル情報を削除します。
CANCEL IMAGE [image-name[, . . . ]]
現在のイメージ(SET IMAGEコマンドで前回設定したイメージ)を取り消すと, メイン・イメージ(イメージ遷移アドレスを含むイメージ)が現在のイメージになります。
関連コマンド
DBG> CANCEL IMAGE SHARE2,SHARE3このコマンドは共用可能イメージのSHARE2とSHARE3を取り消します。この2 つのどちらかが現在のイメージだった場合には,メイン・イメージが現在のイメージになります。
SET MODEコマンドにより設定された行モード,シンボリック・モード,G 浮動モードをそれぞれの省略時の値に戻します。また,入出力値の基数も省略時の設定に戻します。
CANCEL MODE
DBG> SET MODE LINE,SYMBOLIC,NOG_FLOAT DBG> CANCEL RADIX
ほとんどの言語の場合,データの入力と表示の両方に対する省略時の基数は10 進数です。VAXプロセッサでは,例外はBLISS と MACRO-32です。 MACRO-32です。この2つの省略時の基数は16進数です。Alpha プロセッサでは,例外はBLISSとMACRO-32 とMACRO-64です。MACRO-32とMACRO-64です。この3つの省略時の基数は16 進数です。
関連コマンド
DBG> CANCEL MODEこのコマンドは省略時の基数モードとすべての省略時のモード値を復元します。
現在のイメージ内のモジュールのシンボル・レコードをそのイメージの実行時シンボル・ テーブル(RST)から削除します。
CANCEL MODULE [module-name[, . . . ]]
CANCEL MODULE/RELATEDコマンドは指定されたモジュールのシンボル・レコードだけでなく, 関連するモジュールのシンボル・レコードも削除しますが, 他に設定されたモジュールにも関連するモジュールのシンボル・レコードは削除しません。CANCEL MODULE/RELATED の作用はAdaの有効範囲と可視性規則に従っており, モジュール間の実際の関連に依存します。 CANCEL MODULE/NORELATEDコマンドは指定されたモジュールのシンボル・ レコードだけを削除します(関連モジュールのシンボル・レコードは削除されない) 。
CANCEL MODULEコマンドは現在設定されているブレークポイント,トレースポイント, ウォッチポイントはまったく取り消しません。CANCEL MODULEコマンドは取り消されたモジュールに対応する,ブレークポイント, トレースポイント,ウォッチポイントのシンボル化を削除します。
関連コマンド
DBG> CANCEL MODULE SUB1このコマンドはモジュールSUB1のシンボルをRSTから削除します。
DBG> CANCEL MODULE/ALLこのコマンドはすべてのモジュールのシンボルをRSTから削除します。
整数データの入力と表示のための基数モードを省略時の設定に戻します。
CANCEL RADIX
VAXプロセッサでは,例外はBLISSとMACRO-32です。MACRO-32 です。この2つの省略時の基数は16進数です。Alphaプロセッサでは,例外はBLISSとMACRO-32とMACRO-64です。MACRO-32 とMACRO-64です。この3つの省略時の基数は16進数です。
CANCEL RADIX/OVERRIDEコマンドの作用には制限がもっとあります。この作用については/OVERRIDE 修飾子で説明します。
関連コマンド
DBG> CANCEL RADIXこのコマンドは省略時の入出力の基数を復元します。
DBG> CANCEL RADIX/OVERRIDEこのコマンドはSET RADIX/OVERRIDEコマンドで設定していた可能性のある変更型の基数を上書きします。
シンボル検索のための有効範囲検索リストを省略時の設定に戻します。
CANCEL SCOPE
省略時の有効範囲検索リストは,パス名接頭識別子が付かないシンボルの場合,EXAMINE X のようなシンボル検索はまず現在実行中のルーチン(有効範囲0) でXを探します。そこでXが可視状態になっていない場合,デバッガはそのルーチンの呼び出し元( 有効範囲1)を探し,呼び出しスタックを順におりていきます。X が有効範囲nで見つからないと,デバッガは実行時シンボル・ テーブル(RST)の残りを検索し,必要ならばグローバル・ シンボル・テーブル(GST)を検索します。
関連コマンド
DBG> CANCEL SCOPEこのコマンドは現在の有効範囲を取り消します。
前回のSET SOURCEコマンドで設定された,ソース・ディレクトリの検索リストと検索方法のどちらか一方, あるいは両方を取り消します。
CANCEL SOURCE
他の修飾子を追加してCANCEL SOURCE/MODULEコマンドを実行すると,指定された各修飾子がモジュールに与える作用が取り消されます。 他の修飾子を追加せずにCANCEL SOURCE/MODULE コマンドを実行すると,デバッガは指定されていたモジュールをディレクトリ内の他のモジュールと区別しなくなります。
SET SOURCEコマンドを実行する場合,2つの修飾子/LATESTと/EXACTのいずれかが必ず有効でなければなりません。 これらの修飾子は,デバッガの検索方法に影響を与えます。/LATEST 修飾子は,最後に作成されたバージョン( ディレクトリ内の一番大きい番号のバージョン)を検索するようデバッガに指示します。/EXACT 修飾子は,最後にコンパイルされたバージョン( コンパイル時に作成されたデバッガ・シンボル・テーブルに記録されているバージョン) を検索するようデバッガに指示します。たとえば,SET SOURCE/LATESTコマンドはSORT.FOR;3を検索し,SET SOURCE/EXACTコマンドはSORT.FOR;1 を検索するという具合です。
/DISPLAYまたは/EDIT修飾子が指定されていないCANCEL SOURCEは,SET SOURCE/DISPLAYとSET SOURCE/EDITの両方が前に指定されていた場合,これらのコマンドの作用を取り消します。
表示するファイルがコンパイル・ディレクトリに存在しない場合には, /DISPLAY修飾子が必要です。
ソース・コードの表示用に使用されたファイルが編集可能ファイルと異なっている場合には,/EDIT 修飾子が必要です。Adaプログラムを使用する場合がそうです。Ada プログラムの場合,(SET,SHOW,CANCEL) SOURCE コマンドはソース表示に使用するファイル(Adaプログラム・ライブラリ内の" 複写された"ソース・ファイル)の検索に影響します。(SET,SHOW, CANCEL) SOURCE/EDITコマンドは,EDITコマンドを使用するときに編集するソース・ ファイルの検索に影響します。
Adaプログラムに特有の情報については,HELP Language_Support Adaをタイプしてください。
関連コマンド
DBG> SET SOURCE/MODULE=CTEST/EXACT [],SYSTEM::DEVICE:[PROJD] DBG> SET SOURCE [PROJA],[PROJB],[PETER.PROJC] . . . DBG> SHOW SOURCE source directory search list for CTEST, match the exact source file version: [] SYSTEM::DEVICE:[PROJD] source directory list for all other modules, match the latest source file version: [PROJA] [PROJB] [PETER.PROJC] DBG> CANCEL SOURCE DBG> SHOW SOURCE source directory search list for CTEST, match the exact source file version: [] SYSTEM::DEVICE:[PROJD] all other source files will try to match the latest source file versionこの例ではSET SOURCEコマンドによって,CTEST以外のソース・ファイルにディレクトリの検索リストと検索方法( 省略時の最新バージョン検索)を設定しています。CANCEL SOURCE コマンドは,ディレクトリ検索リストは取り消しますが, 検索方法は取り消しません。
DBG> SET SOURCE/MODULE=CTEST/EXACT [],SYSTEM::DEVICE:[PROJD] DBG> SET SOURCE [PROJA],[PROJB],[PETER.PROJC] . . . DBG> SHOW SOURCE source directory search list for CTEST, match the exact source file version: [] SYSTEM::DEVICE:[PROJD] source directory list for all other modules, match the latest source file version: [PROJA] [PROJB] [PETER.PROJC] DBG> CANCEL SOURCE/MODULE=CTEST/EXACT DBG> SHOW SOURCE source directory search list for CTEST, match the latest source file version: [] SYSTEM::DEVICE:[PROJD] source directory list for all other modules, match the latest source file version: [PROJA] [PROJB] [PETER.PROJC] DBG> CANCEL SOURCE/MODULE=CTEST DBG> SHOW SOURCE source directory list for all modules, match the latest source file version: [PROJA] [PROJB] [PETER.PROJC]この例ではSET SOURCE/MODULE=CTEST/EXACTコマンドによって,ソース・ ファイルCTESTにディレクトリの検索リストと検索方法(一致バージョンの検索) を設定しています。CANCEL SOURCE/MODULE=CTEST/EXACTコマンドは,CTEST の検索方法を取り消して省略時の最新バージョン検索に戻しています。 また,CANCEL SOURCE/MODULE=CTESTコマンドは,CTESTのディレクトリ検索リストを取り消しています。
DBG> SET SOURCE /EXACT DBG> SHOW SOURCE no directory search list in effect, match the exact source file DBG> SET SOURCE [JONES] DBG> SHOW SOURCE source directory list for all modules, match the exact source file version: [JONES] DBG> CANCEL SOURCE /EXACT DBG> SHOW SOURCE source directory list for all modules, match the latest source file version: [JONES]この例では,最初のSET SOURCE/EXACTコマンドで設定した検索方法(一致バージョンの検索) は,SET SOURCE [JONES]コマンドでもそのまま有効です。CANCEL SOURCE/EXACT コマンドは,SET SOURCE/EXACTコマンドを取り消し, さらにSET SOURCE [JONES]に影響を与えています。
トレースポイントを取り消します。
CANCEL TRACE [address-expression[, . . . ]]
ユーザ定義トレースポイントと定義済みトレースポイントは,それぞれ別々に設定したり取り消したりします。 たとえば,1つの記憶位置またはイベントに, ユーザ定義トレースポイントと定義済みトレースポイントの両方を設定することができます。 ユーザ定義トレースポイントを取り消しても, 定義済みトレースポイントは影響を受けません。逆も同様です。
ユーザ定義トレースポイントだけを取り消すには,CANCEL TRACEコマンドを指定するときに/PREDEFINED を指定しないでください(省略時の設定は/USER ) 。定義済みトレースポイントだけを取り消すには,/USERではなく/PREDEFINED を指定します。定義済みトレースポイントとユーザ定義トレースポイントを両方とも取り消すには,CANCEL TRACE/ALL/USER /PREDEFINEDを使用します。
通常,SET TRACEコマンドはユーザ定義トレースポイントに対してだけ使用されますが,CANCEL TRACE コマンドの作用はSET TRACEコマンドの作用の反対です。 したがって,特定の記憶位置に設定されたトレースポイントを取り消すには,CANCEL TRACE コマンドでそれと同じ記憶位置(アドレス式) を指定します。命令またはイベントのクラスに対して設定されたトレースポイントを取り消すには, 対応する修飾子(/LINE,/BRANCH, /ACTIVATING,/EVENT=など)を使用して命令またはイベントのクラスを指定します。 詳しい説明は,修飾子の説明を参照してください。
デバッガがトレースポイントを一時的に無視するように設定し,しかもトレースポイントの定義はそのまま残しておきたい場合には,DEACTIVATE TRACEコマンドを使用します。トレースポイントは後で有効に設定できます( その場合はACTIVATE TRACEを使用します)。
関連コマンド
DBG> CANCEL TRACE MAIN\LOOP+10This command cancels the user-defined tracepoint at the location MAIN\LOOP+10.
DBG> CANCEL TRACE/ALLこのコマンドはすべてのユーザ定義トレースポイントを取り消します。
DBG_1> CANCEL TRACE/TERMINATINGこのコマンドは前回のSET TRACE/TERMINATINGコマンドを取り消します。 取り消すと,プロセスがイメージの終了を行っても,ユーザ定義トレースポイントは検出されません。
DBG> CANCEL TRACE/EVENT=RUN %TASK 3このコマンドはタスク3 (タスクID = 3)がRUN状態に入ったときに検出されるように設定されたトレースポイントを取り消します。
前回のSET TYPE/OVERRIDEコマンドで設定された変更型を上書きします。
CANCEL TYPE/OVERRIDE
関連コマンド
DBG> CANCEL TYPE/OVERRIDEこのコマンドは前回のSET TYPE/OVERRIDEコマンドの作用を取り消します。
ウォッチポイントを取り消します。
CANCEL WATCH [address-expression[, . . . ]]
CANCEL ALLコマンドもすべてのウォッチポイントを取り消します。
ウォッチポイントを取り消す手間をかけずに,デバッガにそのウォッチポイントを無視させたい場合には,DEACTIVATE WATCH コマンドを使用してください。 あとで,ACTIVATE WATCHを使用してそのウォッチポイントを有効にすることができます。
関連コマンド
DBG> CANCEL WATCH SUB2\TOTALこのコマンドはモジュールSUB2にある変数TOTALでのウォッチポイントを取り消します。
DBG> CANCEL WATCH/ALLこのコマンドはユーザが設定したすべてのウォッチポイントを取り消します。
画面ウィンドウ定義を永久に削除します。
CANCEL WINDOW [window-name[, . . . ]]
関連コマンド
DBG> CANCEL WINDOW MIDDLEこのコマンドは画面ウィンドウ定義のMIDDLEを永久に削除します。
他のプロセスでデバッガによる制御を受けずに実行されているイメージに割り込みをかけ, そのプロセスをデバッガの制御下に置きます。パラメータを指定しないでCONNECT を使用すると,CONNECTはデバッガに接続されるのを待っている作成されたプロセスすべてをデバッガの制御下に置きます。
このコマンドが使用できるのは,マルチプロセス・デバッグ構成(DBG$PROCESS の値がMULTIPROCESSの場合)か,DCLコマンドDEBUG/KEEP を使用してデバッガを起動した省略時のデバッグ構成のいずれかの場合です。
Alphaシステムの場合,CONNECTコマンドは,Alphaオペレーティング・システムを稼動しているターゲット・ システムをOpenVMS Alphaシステム・ コード・デバッガの制御下に置きます。OpenVMS Alphaシステム・コード・ デバッガは,OpenVMSデバッガから起動するカーネル・デバッガです。
CONNECTコマンドを使用してAlphaオペレーティング・システムをデバッグする場合は, このコマンドを実行する前に,『Writing OpenVMS Alpha Device Drivers in C 』の指示を完了していなければなりません。 これらの指示には,Alphaデバイス・ドライバの作成や,OpenVMS Alpha システム・コード・デバッガを起動するコマンドの設定などがあります。 また,OpenVMSデバッガをDCLコマンドのDEBUG/KEEP で起動していなければなりません。
CONNECT [process-spec] CONNECT %NODE_NAME node-name
[%PROCESS_NAME] proc-name | スペースや小文字を全く含まないOpenVMS プロセス名。プロセス名にはワイルドカード文字のアスタリスク(*) を含むこともできます。 |
[%PROCESS_NAME] "proc-name" | スペースや小文字を含むOpenVMSプロセス名。二重引用符(")の代わりに一重引用符(') を使用することもできます。 |
%PROCESS_PID proc-id | OpenVMSプロセス識別子(PID ,16進数)。 |
システムで実行中のデバッガのバージョンに応じて,ユーザは,ユーザが作成したプロセスとの接続に限定される場合もあり, また利用者識別コード(UIC) グループのメンバが作成したプロセスに接続することができる場合もあります。 ときには,プロセスの作成前にSYSGEN SECURITY_ POLICYパラメータを8に設定しなければならないことがあります。表 2-1 は,デバッガの個々のバージョンに適用される制限事項の一覧表です。
デバッガのバージョン | 接続可能なプロセス | SYSGENパラメータ設定の有無 |
---|---|---|
VAXバージョン5.5-2以前, Alphaバージョン6.0以前 | ユーザ自身が起動したプロセス | なし |
VAXバージョン6.0 | ユーザ自身が起動したプロセスと,UICグループのメンバが起動したプロセス | あり |
VAXバージョン6.1以降, Alphaバージョン6.1以降 | ユーザ自信が起動したプロセスと,UIC グループのメンバが起動したプロセス | なし |
デバッガの論理名(JSY$DEBUG, JSY$DEBUGSHR, JSY$DEBUGUISHR, JSY$DBGTBKMSG, DBG$PROCESS, JSY$DBG_HELP, JSY$DBG_UIHELP, DEBUGAPPCLASS, JSY$VMSDEBUGUIL)は,デバッガとターゲット・プロセスの両方で同一の定義に変換しなければなりません。
/DEBUG修飾子付きでコンパイルおよびリンクしておかなければなりません。 このイメージは,/NOTRACEBACK修飾子付きでリンクしておくことはできません。
プロセスがデバッガの制御下に置かれたとき,イメージの実行は割り込みをかけられた時点で中断されます。
プロセスを指定しないと,CONNECTコマンドはデバッグ・セッションに接続されるのを待っているプロセスすべてをデバッガの制御下に置きます。 待機中のプロセスがない場合には,Ctrl/Cを押せばCONNECTコマンドを強制終了することができます。
省略時の設定では,プロセスがデバッガの制御下に置かれると,トレースポイントが検出されます。 この定義済みトレースポイントはSET TRACE /ACTIVATINGコマンドを入力した結果生じるものと同じです。デバッガの制御下に置かれたプロセスはデバッガによって認識されるようになり, SHOW PROCESSコマンドで表示できるようになります。
CONNECTコマンドを使用して,デバッガの制御下にあるプロセスのサブプロセスに接続することはできません。 そのようなサブプロセスに接続するには,SET P ROCESS コマンドを使用してください。
CONNECTコマンドを使用したAlphaオペレーティング・ システムのデバッグ(Alphaのみ)
CONNECTコマンドを使用してOpenVMS Alpha System-Code Debugger (SCD) で,Alphaオペレーティング・システム・コードをデバッグできます。 通常,タイムシェアリング(ホスト) Alphaマシン(SCDが実行中の)からこのコマンドを実行して, スタンドアロンの(ターゲット) Alphaマシン(Alpha オペレーティング・システムが実行中の)に接続します。この2台のマシンの通信は, イーサネット・ネットワークを通じて行います。
場合によっては,ロバスト性の低いDelta/XDeltaデバッガを使用してオペレーティング・ システム・コードをデバッグしなければならないこともあります。 たとえば,次のような場合です。
ただし,一般的にはOpenVMS AXPシステム・コード・デバッガの方がAlpha オペレーティング・システム・コードのデバッグによく使用されます。 このデバッガの使用法の詳細については,『Writing OpenVMS Alpha Device Drivers in C 』を参照してください。
関連コマンド
DBG_1> CONNECTこのコマンドはデバッガに接続されるのを待っているプロセスをすべてデバッガの制御下に置きます。
DBG_1> CONNECT JONES_3このコマンドはJONES_3というプロセスで実行されているイメージに割り込みをかけ, そのプロセスをデバッガの制御下に置きます。JONES_3プロセスはデバッガが起動されたプロセスと同じUIC グループになければなりません。 また,イメージは/NOTRACEBACK修飾子でリンクされていたものであってはなりません。
DBG> CONNECT %NODE_NAME testing_node /PASSWORD="eager_beaver" %DEBUG-I-NOLOCALS, image does not contain local symbols DBG>Alphaシステムの場合,このCONNECTコマンドは,Alphaオペレーティング・ システム・コードを実行しているターゲット・システムをデバッガの制御下に置きます。 この例では,Alphaターゲット・マシン(オペレーティング・ システム側)のノード名にtesting_nodeを,パスワードにeager_beaver を指定しています。Alphaホスト・マシン(デバッガ側)のイメージ・ パスは省略時のDBGH K$IMAGE_PATH:です。
デバッグ・セッション中に入力された場合,Ctrl/Cはデバッグ・セッションを中断せずに, デバッガ・コマンドの実行を強制終了するか,プログラムの実行を中断します。
<Ctrl/C>
Ctrl/C割り込みのあとは,イメージを実行していたマルチプロセス・プログラムのプロセスはどれも" 割り込みをかけられた"状態になります。
プログラムがすでにCtrl/C ASTサービス・ルーチンを使用可能にしている場合には,SET ABORT_KEY コマンドを使用して,デバッガの強制終了機能を他のCtrl キー・シーケンスに割り当てます。ただし,多くのCtrl キー・シーケンスの機能が定義済みであり,SET ABORT_KEYコマンドを使用すれば, そのような定義も上書きできることに注意してください( 『OpenVMSユーザーズ・マニュアル』を参照)。オペレーティング・ システムによって使用されていないCtrlキー文字としては,G,K, N,Pがあります。
プログラムがCtrl/C ASTサービス・ルーチンを使用可能にしていない 場合,デバッガの強制終了機能を他のCtrlキー・シーケンスに割り当てると,Ctrl/C はCtrl/Yと同じように動作します。つまり,デバッグ・ セッションに割り込みをかけ,DCLレベルに戻します。
デバッグ・セション中にはCtrl/Yは使用できません。代わりにCtrl/Cを使用するか,SET ABORT_KEY コマンドで設定した同等のCtrlキー・シーケンスを使用してください。
SPAWNコマンドとATTACHコマンドを使用すれば,デバッグ・コンテキストを失わずに, デバッグ・セッションから移行したり,デバッグ・セッションに戻ったりすることができます。
関連コマンド
DBG> GO . . . <Ctrl/C> DBG> EXAMINE/BYTE 1000:101000 !should have typed 1000:1010 1000: 0 1004: 0 1008: 0 1012: 0 1016: 0 <Ctrl/C> %DEBUG-W-ABORTED, command aborted by user request DBG>この例は,Ctrl/Cを使用して,プログラム実行を中断し,デバッガ・コマンドの実行を強制終了する方法を示しています。
Ctrl/Wは(DISPLAY/REFRESHと同様に)画面モードで画面を再表示します。
<Ctrl/W>
DCLレベルから入力されると,Ctrl/Yはデバッガ制御を受けずに実行されているイメージに割り込みをかけ, ユーザがDCLコマンドのDEBUGでデバッガを起動できるようにします。
<Ctrl/Y>
イメージをデバッガの制御下に置くことができるのは,最低でも,イメージが/TRACEBACK 修飾子(/TRACEBACKはLINKコマンドの省略時の設定)でリンクされている場合だけです。 また,デバッグ中にイメージのシンボルすべてを参照できるのは, そのモジュールが/DEBUG修飾子でコンパイルされ, リンクされた場合だけです。この場合には,DCLコマンドのRUN/NODEBUGを使用すればデバッガを使用しないでイメージを実行できます。
イメージの実行に割り込みをかけるためにCtrl/Yを押すと,制御がDCLに渡されます。 そのあとDCLコマンドのDEBUGを入力すると,割り込みをかけられたイメージがデバッガの制御下に置かれます。 デバッガはその言語固有のパラメータを, 割り込みをかけられたモジュールのソース言語に設定し, プロンプトを表示します。プロンプトが表示されたら,ユーザはSHOW CALLSコマンド(マルチプロセス・プログラムの場合には,SHOW CALLSコマンドに加えてSHOW PROCESS コマンド)を入力することにより,どこで実行が中断されたのかを判断できます。
Ctrl/Y-DEBUGシーケンスの作用についてのこの他の詳しい説明は,デバッグ構成, つまり省略時の構成あるいはマルチプロセス構成かによって異なります。 デバッグ構成は割り込みをかけられたイメージが実行されていたプロセスの論理名DBG$PROCESS の現在の定義によって決まります。
Ctrl/Y-DEBUGシーケンスは,保持デバッガ(Kept Debugger)の構成では使用できません。
Ctrl/Y-DEBUGシーケンスは,デバッガへのDECwindows Motifインタフェースでは使用できません。 代わりに,STOPボタンを使用してください。
DBG$PROCESSが定義されていないときまたはその値がDEFAULTのときに,省略時のデバッグ構成が採用されます。 この場合には,Ctrl/Y-DEBUGシーケンスを使用してデバッガを起動するたびに新しい省略時のデバッグ・ セッションが開始されます( 例1を参照してください)。
マルチプロセス・デバッグ構成は,DBG$PROCESSがジョブ論理名テーブルにMULTIPROCESS と定義されているときに採用されます。この場合, Ctrl/Y-DEBUGシーケンスの作用は次のようになります。
デバッグ・セッション中は,CONNECTコマンドを使用して,(同じジョブの) 他のプロセスでデバッガ制御を受けずに実行されているイメージをそのデバッグ・ セッションに接続できます。
関連コマンド
$ 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)に言語固有のパラメータを設定します。 これが省略時のデバッグ構成です。DBG>プロンプトでそれを表しています。
$ DEFINE/JOB DBG$PROCESS MULTIPROCESS $ RUN/NODEBUG PROG2 . . . <Ctrl/Y> Interrupt $ DEBUG Debugger Banner and Version Number %DEBUG-I-INITIAL, language is Fortran, module set to SUB4 Language: FORTRAN, Module: SUB4 predefined trace on activation at SUB4\%LINE 12 in %PROCESS_NUMBER 1 DBG_1>この例では,DEFINE/JOBコマンドによってマルチプロセス・デバッグ構成が設定されます。RUN/NODEBUG コマンドはデバッガの制御を受けずにPROG2 イメージを実行します。Ctrl/Y-DEBUGシーケンスは実行に割り込みをかけ, デバッガを起動します。バナーは新しいデバッグ・セッションが開始されたことを示します。 プロセス固有のプロンプト(DBG_1>)はこれがマルチプロセス構成であることと, 実行がプロセス1で中断されることを表します。 プロセス1はPROG2を実行中です。起動時トレースポイントはデバッガがプロセスを制御下に置いたときに実行が割り込みをかけられた場所を表します。
Ctrl/Zは(EXITと同様に)デバッグ・セッションを終了します。
<Ctrl/Z>
ブレークポイントを無効にします。そのブレークポイントはあとで有効にすることができます。
DEACTIVATE BREAK [address-expression[, . . . ]]
現在のイベント機能とそれに対応するイベント名を表示するには,SHOW EVENT_FACILITYコマンドを使用します。
ブレークポイントを無効にすると,デバッガはプログラムの実行中そのブレークポイントを無視します。 無効にされたブレークポイントを有効にするには,ACTIVATE BREAK コマンドを使用します。ユーザ定義ブレークポイントと定義済みブレークポイントは別々に有効にしたり, 無効にしたりすることができます。 ブレークポイントを有効にしたり無効にしたりすることにより, プログラムの実行や再実行のときに,ブレークポイントを取り消して再設定する手間をかけずに, ブレークポイントを使用したり使用しなかったりすることができます。 省略時の設定でRERUNコマンドを実行すると, すべてのブレークポイントの現在の状態(有効か無効か)が保存されます。
ブレークポイントが無効になっているかどうかを確かめるには,SHOW BREAKコマンドを使用します。
関連コマンド
DBG> DEACTIVATE BREAK MAIN\LOOP+10このコマンドはアドレス式MAIN\LOOP+10で設定されたユーザ定義ブレークポイントを無効にします。
DBG> DEACTIVATE BREAK/ALLこのコマンドはすべてのユーザ定義ブレークポイントを無効にします。
以前に設定したあと無効にしたトレースポイントを有効にします。
DEACTIVATE TRACE [address-expression[, . . . ]]
現在のイベント機能とそれに対応するイベント名を表示するには,SHOW EVENT_FACILITYコマンドを使用します。
トレースポイントを有効にしたり無効にしたりすることにより,プログラムの実行や再実行のときに, トレースポイントを取り消して再設定する手間をかけずに, トレースポイントを使用したり使用しなかったりすることができます。 省略時の設定でRERUNコマンドを実行すると,すべてのトレースポイントの現在の状態( 有効か無効か)が保存されます。
有効や無効にするのはユーザ定義トレースポイントと定義済みトレースポイントのどちらか一方でも両方でもかまいません。 トレースポイントが有効になっているかを確かめるには,SHOW TRACE コマンドを使用してください。
関連コマンド
DBG> DEACTIVATE TRACE MAIN\LOOP+10このコマンドはMAIN\LOOP+10の位置にあるユーザ定義トレースポイントを有効にします。
DBG> DEACTIVATE TRACE/ALLこのコマンドはユーザ定義トレースポイントをすべて有効にします。
以前に設定したあと無効にしたウォッチポイントを有効にします。
DEACTIVATE WATCH [address-expression[, . . . ]]
ウォッチポイントを有効にしたり無効にしたりすることにより,プログラムの実行や再実行のときに, ウォッチポイントを取り消して再設定する手間をかけずに, ウォッチポイントを使用したり使用しなかったりすることができます。
省略時の設定では,RERUNコマンドを実行すると,すべての静的ウォッチポイントの現在の状態( 有効か無効か)が保存されます。特定の非静的ウォッチポイントは,( 実行を再開する)メイン・プログラム・ユニットを基準にした, ウォッチの対象になっている変数の有効範囲によって保存されることもあり, 保存されないこともあります。
ウォッチポイントが有効になっているかを確かめるには,SHOW WATCHコマンドを使用します。
関連コマンド
DBG> DEACTIVATE WATCH SUB2\TOTALこのコマンドはモジュールSUB2の中のTOTAL変数でのウォッチポイントを有効にします。
DBG> DEACTIVATE WATCH/ALLこのコマンドは設定したあと無効にしたすべてのウォッチポイントを有効にします。
コマンド・プロシージャの中で仮パラメータを宣言します。これにより,@ ( 実行プロシージャ)コマンドの入力時に実パラメータを渡すことができます。
DECLARE p-name:p-kind [,p-name:p-kind[, . . . ]]
(連続する2つのコンマまたはコマンドの最後のコンマで表される)空パラメータは指定できません。
ADDRESS | 実パラメータをアドレス式として解釈することを指定します。 DEFINE/ADDRESS p-name = actual-parameterと同じ働きです。 |
COMMAND | 実パラメータをコマンドとして解釈することを指定します。 DEFINE/COMMAND p-name = actual-parameterコマンドと同じ働きです。 |
VALUE | 実パラメータを現在の言語での値式として解釈することを指定します。 DEFINE/VALUE p-name = actual-parameterと同じ働きです。 |
DECLAREコマンドは,@ (実行プロシージャ)コマンドに続くコマンド行に指定された1 つまたは複数の実パラメータを,コマンド・プロシージャの中で宣言された仮パラメータ( シンボル)にバインドします。
DECLAREコマンドで指定される各p-name:p-kindの組は1つの仮パラメータを1 つの実パラメータにバインドします。仮パラメータはデバッガがパラメータ宣言を処理する順番で実パラメータにバインドされます。1 つのDECLAREコマンドに複数の仮パラメータを指定すると,左端の仮パラメータが最初の実パラメータにバインドされ, 次の仮パラメータが2 番目の実パラメータにバインドされるというようになります。DECLAREコマンドをループで使用すると, 仮パラメータはループの1回目の最初の実パラメータにバインドされます。 そして同じ仮パラメータが2回目の2番目の実パラメータにバインドされるというようになります。
各パラメータ宣言はDEFINEコマンドと同様に動作します。指定されたパラメータ種別に従って, アドレス式,コマンドまたは現在の言語での値式に仮パラメータを対応づけるのです。 仮パラメータそのものはDEFINEコマンドで受け入れられるものと一致しており, 実際にDELETEコマンドでシンボル・ テーブルから削除することができます。
%PARCNT組み込みシンボルはコマンド・プロシージャの中でだけ使用できます。 これを使用すれば,可変数のパラメータをコマンド・プロシージャに渡すことができます。%PARCNT の値はコマンド・プロシージャに渡される実パラメータの数です。
関連コマンド
! ***** コマンド・プロシージャ 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 はアドレス式(この場合には配列変数)として解釈されます。
! ***** デバッガ・コマンド・プロシージャ 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を渡します。
! ***** デバッガ・コマンド・プロシージャ 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 コマンドがその値を表示します。
アドレス式,コマンドまたは値にシンボリック名を割り当てます。
DEFINE symbol-name=parameter [,symbol-name=parameter[, . . . ]]
$ symbol := string
複雑なコマンドを定義するには,仮パラメータ付きのコマンド・プロシージャの使用が必要となることがあります。 コマンド・プロシージャに対するパラメータの宣言についての詳しい説明は,DECLARE コマンドを参照してください。
DEFINE/COMMANDコマンドを使用すれば,デバッガ・コマンド・レベルまたはコマンド・ プロシージャから,デバッガ・コマンドの短縮形を定義するか, 新しいコマンドを定義することができます。
DEFINE/VALUEコマンドを使用すれば,シンボリック名を値(または言語式を評価する結果) に割り当てられます。
シンボル定義をコマンド・プロシージャ内に限定するには,/LOCAL修飾子を使用します。 省略時の設定では,定義されたシンボルはグローバル(コマンド・ プロシージャの外で可視状態)になります。
同じ修飾子を使用して複数のDEFINEコマンドを入力する場合は,まずSET DEFINEコマンドを使用して新しい省略時の修飾子を設定できます。たとえば,SET DEFINE COMMAND を使用すれば,DEFINEコマンドがDEFINE/COMMAND と同じように動作するようになります。そのあと,DEFINEコマンドで同じ修飾子を使用する必要はありません。 他の修飾子を指定することにより,1 つのDEFINEコマンドの継続中に現在の省略時の修飾子を上書きできます。
シンボル変換では,デバッガはまずデバッグ・セッションの間に定義されたシンボルを検索します。 したがって,プログラムにすでに存在しているシンボルが定義されると, パス名の接頭識別子が指定された場合を除き, デバッガはそのシンボルをもともと定義されていた定義に従って変換します。
シンボルを再定義すると,DEFINEコマンドで異なる修飾子を使用していた場合でも, もとの定義は取り消されます。
DEFINE/ADDRESSコマンドとDEFINE/VALUEコマンドで作成された定義は,それらが作成されたコンテキストの中のイメージが現在のイメージになっているときだけ使用できます。 新しい現在のイメージを設定するためにSET IMAGEコマンドを使用すると,これらの定義は一時的に使用できない状態になります。 ただし,DEFINE/COMMANDコマンドとDEFINE/KEYコマンドで作成された定義はいつでもすべてのイメージに使用できます。
シンボルの同値を求めるにはSHOW SYMBOL/DEFINEDコマンドを使用します。
シンボル定義を取り消すにはDELETEコマンドを使用します。
関連コマンド
DBG> DEFINE CHK=MAIN\LOOP+10このコマンドはシンボルCHKをアドレスMAIN\LOOP+10に割り当てます。
DBG> DEFINE/VALUE COUNTER=0 DBG> SET TRACE/SILENT R DO (DEFINE/VALUE COUNTER = COUNTER+1)この例では,DEFINE/VALUEコマンドは値の0をCOUNTERシンボルに割り当てます。SET TRACE コマンドを使用すると,デバッガはアドレスRが検出されるたびにシンボルCOUNTER の値を1だけ増分します。つまり,この例ではR への呼び出し回数を数えているのです。
DBG> DEFINE/COMMAND BRE = "SET BREAK"このコマンドはシンボルBREをデバッガ・コマンドのSET BREAKに割り当てます。
ファンクション・キーに文字列を割り当てます。
DEFINE/KEY key-name "equivalence-string"
キー名 | LK201キーボード | VT100型 | VT52型 |
---|---|---|---|
PF1 | PF1 | PF1 | Blue |
PF2 | PF2 | PF2 | Red |
PF3 | PF3 | PF3 | Black |
PF4 | PF4 | PF4 | |
KP0-KP9 | キーパッドの0〜9 | キーパッドの0〜9 | キーパッドの0〜9 |
PERIOD | キーパッドのピリオド(.) | キーパッドのピリオド(.) | |
COMMA | キーパッドのコンマ(,) | キーパッドのコンマ(,) | |
MINUS | キーパッドのマイナス(-) | キーパッドのマイナス(-) | |
MINUS | キーパッドのマイナス(-) | キーパッドのマイナス(-) | |
ENTER | Enter | ENTER | ENTER |
E1 | Find | ||
E2 | Insert Here | ||
E3 | Remove | ||
E4 | Select | ||
E5 | Prev Screen | ||
E6 | Next Screen | ||
HELP | Help | ||
DO | Do | ||
F6-F20 | F6-F20 |
LK201キーボードでは,次のようになります。
DEFINE/KEYコマンドを使用すれば,ファンクション・キーに文字列を割り当て, そのキーにバインドされている定義済みの機能を上書きできます。 そのあと,そのキーを押すと,デバッガは現在対応づけられている文字列をコマンド行に入力します。DEFINE/KEY コマンドはDCLコマンドのDEFINE/KEY に似ています。
定義済みのキー機能のリストについては,「CIのキーパッド定義」オンライン・ ヘルプ・トピックを参照してください。
VT52シリーズとVT100シリーズの端末では,ユーザが使用できるファンクション・ キーは数値キーパッド・キーです。これより新しい端末やワークステーションにはLK201 のキーボードが備っています。LK201のキーボードで使用できるファンクション・ キーとしては,数値キーパッド・キー全部, 編集キーパッドの矢印以外のキー(Find,Insert Hereなど),キーボードの上部にあるF6 からF20のキーなどがあります。
キー定義は,そのキーが再定義されるか,そのキーに対してDELETE/KEYコマンドが入力されるか, デバッガが終了されるまで有効です。デバッガ初期化ファイルなどのコマンド・ プロシージャにはキー定義を含めることができます。
/IF_STATE修飾子を使用すれば,端末で使用できるキー定義の数を増加できます。 各定義が異なる状態に対応づけられているかぎり,同じキーにいくつでも定義を割り当てられます。
省略時の状態では,現在のキー状態は"DEFAULT"状態です。現在の状態はSET KEY/STATE コマンドを使用するか,状態を変更するキー(DEFINE/KEY /LOCK_STATE/SET_STATEで定義されたキー)を押すことにより変更できます。
関連コマンド
DBG> SET KEY/STATE=GOLD %DEBUG-I-SETKEY, keypad state has been set to GOLD DBG> DEFINE/KEY/TERMINATE KP9 "SET RADIX/OVERRIDE HEX" %DEBUG-I-DEFKEY, GOLD key KP9 has been definedこの例では,SET KEYコマンドは現在のキー状態としてGOLDを設定しています。/DEFINE/KEY コマンドはSET RADIX/OVERRIDE HEXコマンドを現在の状態(GOL D) のキーパッド・キー9 (KP9)に割り当てます。このコマンドはKP9 キーが押されると処理されます。
DBG> DEFINE/KEY/IF_STATE=BLUE KP9 "SET BREAK %LINE " %DEBUG-I-DEFKEY, BLUE key KP9 has been definedこのコマンドは,未完成のコマンド文字列"SET BREAK %LINE"をBLUE状態のキーパッド・ キー9に割り当てます。BLUE-KP9を押したあと,行番号を入力してReturn キーを押せば,SET BREAKコマンドを終了して処理することができます。
DBG> SET KEY/STATE=DEFAULT %DEBUG-I-SETKEY, keypad state has been set to DEFAULT DBG> DEFINE/KEY/SET_STATE=RED/LOCK_STATE F12 "" %DEBUG-I-DEFKEY, DEFAULT key F12 has been definedこの例では,SET KEYコマンドは現在の状態としてDEFAULTを設定します。 DEFINE/KEYコマンドは(LK201キーボード上の) F12キーを状態キーにします。DEFAULT 状態にあるときにF12キーを押すと,現在の状態がREDになります。 キー定義は終了されず,他に何の作用も持ちません(空文字列がF12 に割り当てられたことになります)。F12キーを押したあと,RED状態に対応づけられている定義を持つキーを押せば,"RED" コマンドを入力できます。
シンボリック名をプロセス指定のリストに割り当てます。
マルチプロセス・デバッグ構成の場合(DBG$PROCESSの値がMULTIPROCESSの場合) に指定できます。
DEFINE/PROCESS_GROUP process-group-name =process-spec[, . . . ]
[%PROCESS_NAME] proc-name | スペースや小文字を全く含まないプロセス名。プロセス名にはワイルドカード文字のアスタリスク(*) を含むこともできます。 |
[%PROCESS_NAME] "proc-name" | スペースや小文字を含むプロセス名。二重引用符(")の代わりに一重引用符(') を使用することもできます。 |
%PROCESS_PID proc-id | プロセス識別子(PID ,16進数)。 |
%PROCESS_NUMBER proc-number (または%PROC proc-number) | デバッガの制御下に入ったときにプロセスに割り当てられた番号。 プロセス番号はSHOW PROCESS コマンドの実行で表示されます。 |
proc-group-name | DEFINE/PROCESS_ GROUPコマンドで定義された,プロセスのグループを表すシンボル。 再帰的なシンボル定義を指定してはなりません。 |
%NEXT_PROCESS | デバッガの循環プロセス・ リスト中で可視プロセスの次のプロセス。 |
%PREVIOUS_PROCESS | デバッガの循環プロセス・ リスト中で可視プロセスの前のプロセス。 |
%VISIBLE_PROCESS | シンボル,レジスタ値,ルーチン呼び出し, ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタック, レジスタ・セット,およびイメージを持つプロセス。 |
プロセスを指定しないと,シンボリック名は作成されますが,プロセス・ エントリは含まれません。
DEFINE/PROCESS_GROUPコマンドは指定されたプロセスの有無を調べません。 このため,まだ存在していないプロセスでも指定できます。
DEFINE/PROCESS_GROUPコマンドで定義されたシンボルを表示するには, SHOW SYMBOL/DEFINEDコマンドを使用します。DEFINE/PROCESS_GROUPコマンドで定義されたシンボルを削除するには,DELETE コマンドを使用します。
関連コマンド
DBG_1> DEFINE/PROCESS_GROUP SERVERS=FILE_SERVER,NETWORK_SERVER DBG_1> SHOW PROCESS SERVERS Number Name Hold State Current PC * 1 FILE_SERVER step FS_PROG\%LINE 37 2 NETWORK_SERVER break NET_PROG\%LINE 24 DBG_1>このDEFINE/PROCESS_GROUPコマンドはシンボリック名SERVERSをFILE_ SERVERとNETWORK_SERVERで構成されるプロセス・グループに割り当てます。SHOW PROCESS SERVERS コマンドはSERVERSグループを構成するプロセスについての情報を表示します。
USER_3> DEFINE/PROCESS_GROUP G1=%PROCESS_NUMBER 1,%VISIBLE_PROCESS USER_3> SHOW SYMBOL/DEFINED G1 defined G1 bound to: "%PROCESS_NUMBER 1, %VISIBLE_PROCESS" was defined /process_group USER_3> DELETE G1このDEFINE/PROCESS_GROUPコマンドはシンボリック名G1をプロセス1と可視プロセス( プロセス3)で構成されるプロセス・グループに割り当てます。SHOW SYMBOL/DEFINED G1 コマンドは定義されたシンボルG1を表示します。DELETE G1 コマンドはDEFINEシンボル・テーブルからそのシンボルを削除します。
DBG_2> DEFINE/PROCESS_GROUP A = B,C,D DBG_2> DEFINE/PROCESS_GROUP B = E,F,G DBG_2> DEFINE/PROCESS_GROUP E = I,J,A %DEBUG-E-NORECSYM, recursive PROCESS_GROUP symbol definition encountered at or near "A"この一連のDEFINE/PROCESS_GROUPコマンドはDEFINE/PROCESS_GROUPコマンドの無効な用法と有効な用法を示しています。
DEFINEコマンドで設定されたシンボル定義を削除します。
DELETE [symbol-name[, . . . ]]
関連コマンド
DBG> DEFINE X = INARR, Y = OUTARR DBG> DELETE X,Yこの例では,DEFINEコマンドはXとYをそれぞれINARRとOUTARRに対応するグローバル・ シンボルとして定義します。DELETEコマンドはこの2つのシンボル定義をグローバル・ シンボル・テーブルから削除します。
DBG> DELETE/ALL/LOCALこのコマンドはすべてのローカル・シンボル定義を現在のコマンド・プロシージャから削除します。
DELETE/KEYコマンドで設定されたキー定義および省略時にデバッガによって設定されたキー定義を削除します。
DELETE/KEY [key-name]
キー名 | LK201キーボード | VT100型 | VT52型 |
---|---|---|---|
PF1 | PF1 | PF1 | Blue |
PF2 | PF2 | PF2 | Red |
PF3 | PF3 | PF3 | Black |
PF4 | PF4 | PF4 | |
KP0-KP9 | Keypad 0-9 | Keypad 0-9 | Keypad 0-9 |
KP0-KP9 | キーパッドの0〜9 | キーパッドの0〜9 | キーパッドの0〜9 |
PERIOD | キーパッドのピリオド(.) | キーパッドのピリオド(.) | |
COMMA | キーパッドのコンマ(,) | キーパッドのコンマ(,) | |
MINUS | キーパッドのマイナス(-) | キーパッドのマイナス(-) | |
MINUS | キーパッドのマイナス(-) | キーパッドのマイナス(-) | |
ENTER | Enter | ENTER | ENTER |
E1 | Find | ||
E2 | Insert Here | ||
E3 | Remove | ||
E4 | Select | ||
E5 | Prev Screen | ||
E6 | Next Screen | ||
HELP | Help | ||
DO | Do | ||
F6-F20 | F6-F20 |
省略時の設定では,現在のキーの状態は"DEFAULT "状態です。現在の状態はSET KEY/STATE コマンドを使用するか,状態を変更するキー(DEFINE/KEY /LOCK_STATE/SET_STATEで定義されたキー)を押すことにより変更できます。
このコマンドを使用する前にキーパッド・モードが使用可能な状態(SET MODE KEYPAD)に設定されていなければなりません。省略時の設定では,キーパッド・ モードは使用可能です。
関連コマンド
DBG> DELETE/KEY KP4 %DEBUG-I-DELKEY, DEFAULT key KP4 has been deletedこのコマンドは前回SET KEYコマンドで設定された状態(省略時の設定では, これはDEFAULT状態)でKP4に対するキー定義を削除します。
DBG> DELETE/KEY/STATE=(BLUE,RED) COMMA %DEBUG-I-DELKEY, BLUE key COMMA has been deleted %DEBUG-I-DELKEY, RED key COMMA has been deletedこのコマンドはBLUEとREDの状態でCOMMAキーに対するキー定義を削除します。
プログラム変数の値を変更します。より通常は,アドレス式で示される記憶位置に新しい値を格納します。
DEPOSIT address-expression = language-expression
集合体変数全体(配列またはレコードなどの複合データ構造)は指定できません。 個々の配列要素またはレコードの構成要素を指定するには,現在の言語の構文に従ってください。
式がASCII文字列またはアセンブリ言語命令の場合には,その式を二重引用符(") または一重引用符( ')で囲まなければなりません。文字列に二重引用符も一重引用符も含まれていない場合には, 他の区切り文字を使用してその文字列を囲んでください。
文字列に含まれている文字数(ASCII,バイト単位)がアドレス式で示されるプログラム記憶位置に収まる文字数より多い場合には, デバッガは右側から余分な文字を切り捨てます。 文字列に含まれている文字数が少ない場合には, デバッガは文字列の右側にASCIIスペース文字を挿入することにより足りない文字を埋め込みます。
[dd-mmm-yyyy[:]] [hh:mm:ss.cc]
Alphaプロセッサでは,等号の右側にある式をIEEE のT浮動小数点型(8バイト長)に変換し,その結果を指定された記憶位置に格納します。
指定された文字列を変換する場合,デバッガはそのデバッガが実行されているプロセスのロケール・ データベースを使用します。省略時の設定はC ロケールです。
DEPOSITコマンドはほとんどのプログラミング言語での代入文と似ています。 等号の右側に指定された式の値が等号の左側に指定された変数やその他の記憶位置に代入されます。Ada とPascalの場合,コマンド構文では"=" の代わりに":="を使用できます。
デバッガはシンボリック・アドレス式(プログラムで宣言されるシンボリック名) に対応するコンパイラ生成型を認識します。シンボリック・アドレス式には次の要素が含まれます。
通常,DEPOSITコマンドを入力すると,デバッガは次の動作を行います。
言語の規則で許されている場合には,デバッガは格納操作時に型変換を行うことがあります。 たとえば,等号の右側に指定される実数値が整数型を持つ記憶位置に格納される場合には, 整数値に変換されるでしょう。通常, デバッガは現在の言語の代入規則に従うようにします。
異なる型のデータをプログラム記憶位置に格納できるようにするために, プログラム記憶位置に対応する型を変更する方法はいくつもあります。
Cまたは大文字小文字を区別する言語で記述されたプログラムをデバッグする場合, 指定した型が大文字小文字混合または小文字のときは, DEPOSIT/TYPEコマンドを使用できません。たとえば,次のような関数を含むプログラムを仮定します。
xyzzy_type foo () { xyzzy_type z; z = get_z (); return (z); }
次のコマンドを入力しようとすると,デバッガは,"xyzzy_type"型が見つからないというメッセージを発行します。
DBG> DEPOSIT/TYPE=(xyzzy_type) z="whatever"
デバッガは2進数,10進数,16進数,8進数の4つの基数のどれか1つで整数データを解釈したり表示したりできます。 ほとんどの言語の場合,データの入力と表示の両方に対する省略時の基数は10 進数です。
VAXプロセッサでは,例外はBLISSとMACRO-32です。MACRO-32 です。この2つの省略時の基数は16進数です。Alphaプロセッサでは,例外はBLISSとMACRO-32とMACRO-64です。MACRO-32 とMACRO-64です。この3つの省略時の基数は16進数です。
省略時の基数を変更するには,SET RADIXコマンドとSET RADIX/OVERRIDE コマンドを使用できます。
DEPOSITコマンドは指定されたアドレス式で示される位置に現在の値の組み込みシンボル%CURLOC とピリオド(.)を設定します。論理的先行データ(%PREVLOC またはサーカンフレックス文字(^) )と論理的後続データ(%NEXTLOC) は現在の値に基づきます。
関連コマンド
DBG> DEPOSIT I = 7このコマンドは値7を整数変数Iに格納します。
DBG> DEPOSIT WIDTH = CURRENT_WIDTH + 24.80このコマンドはCURRENT_WIDTH + 24.80という式の値を実変数WIDTHに格納します。
DBG> DEPOSIT STATUS = FALSEこのコマンドは値FALSEをブール変数STATUSに格納します。
DBG> DEPOSIT PART_NUMBER = "WG-7619.3-84"この値は文字列WG-7619.3-84を文字列変数のPART_NUMBERに格納します。
DBG> DEPOSIT EMPLOYEE.ZIPCODE = 02172このコマンドは値02172をレコードEMPLOYEEの構成要素ZIPCODEに格納します。
DBG> DEPOSIT ARR(8) = 35 DBG> DEPOSIT ^ = 14この例では,最初のDEPOSITコマンドは値35を配列ARRの要素8に格納します。 結果として,要素8が現在の値になります。2番目のコマンドは値の14 を要素8の論理的先行データ,つまり要素7に格納します。
DBG> FOR I = 1 TO 4 DO (DEPOSIT ARR(I) = 0)このコマンドは配列ARRの要素1から4に値0を格納します。
DBG> DEPOSIT COLOR = 3 %DEBUG-E-OPTNOTALLOW, operator "DEPOSIT" not allowed on given data type間違った型のデータを変数に格納しようとすると(この場合,整数値を列挙型変数に格納しようとした場合) デバッガはユーザに警告します。メッセージの重大度E ( エラー)はデバッガが代入を行わないことを表します。
DBG> DEPOSIT VOLUME = - 100 %DEBUG-I-IVALOUTBNDS, value assigned is out of bounds at or near '-'範囲外の値(この場合には負の値)を変数に格納しようとすると,デバッガはユーザに警告します。 メッセージの重大度I (情報)は,デバッガが代入を行うことを表します。
DBG> DEPOSIT/BYTE WORK = %HEX 21このコマンドは%HEX 21という式をWORKという記憶位置に格納し,それをバイト整数に変換します。
DBG> DEPOSIT/OCTAWORD BIGINT = 111222333444555このコマンドは111222333444555の式をBIGINT記憶位置に格納し,それをオクタワード整数に変換します。
DBG> DEPOSIT/FLOAT BIGFLT = 1.11949*10**35このコマンドは1.11949*10**35をF浮動小数点型の値に変換し,それをBIGFLT 記憶位置に格納します。
DBG> DEPOSIT/ASCII:10 WORK+20 = 'abcdefghij'このコマンドはシンボルWORKで示される記憶位置の20バイト先の記憶位置に文字列"abcdefghij" を格納します。
DBG> DEPOSIT/INSTR SUB2+2 = 'MOVL #20A,R0'VAXシステムでは,このコマンドは命令MOVL #20A,R0'をSUB2 + 2バイトの記憶位置に格納します。
DBG> DEPOSIT/TASK VAR = %TASK 2 DBG> EXAMINE/HEX VAR SAMPLE.VAR: 0016A040 DBG> EXAMINE/TASK VAR SAMPLE.VAR: %TASK 2 DBG>DEPOSITコマンドはAdaタスク値の%TASK 2を記憶位置VARに格納します。以降のEXAMINE コマンドの1つはVARの内容を16進数形式で表示します。もう1 つのEXAMINEコマンドはVARの内容をタスク値として表示します。
プログラムでの非同期システム・トラップ(AST)の実行要求を無効にします。
DISABLE AST
ENABLE ASTコマンドは保留中のAST (配付されるのを待っているAST)も含めて,AST の実行要求を再度可能にします。
関連コマンド
DBG> DISABLE AST DBG> SHOW AST ASTs are disabled DBG>DISABLE ASTコマンドはプログラムでのASTの実行要求を無効にします。これはSHOW AST コマンドによって確認できます。
プロセスを終了せずに,そのプロセスをデバッガの制御から解放します。 このコマンドは,省略時のデバッグ構成かマルチプロセス・デバッグ構成のいずれかに同等に適用されます。 つまり,DBG$PROCESSの値が未定義かDEFAULT であるか,あるいはMULTIPROCESSであるかによっていずれかの構成に分かれます。
DISCONNECT process-spec
[%PROCESS_NAME] proc-name | スペースや小文字を全く含まないOpenVMS プロセス名。プロセス名にはワイルドカード文字のアスタリスク(*) を含むこともできます。 |
[%PROCESS_NAME] "proc-name" | スペースや小文字を含むOpenVMSプロセス名。二重引用符(")の代わりに一重引用符(') を使用することもできます。 |
%PROCESS_PID proc-id | OpenVMSプロセス識別子(PID ,16進数)。 |
%PROCESS_NUMBER proc-number (または%PROC proc-number) | デバッガの制御下に置かれたときにプロセスに割り当てられた番号。 プロセス番号は,SHOW PROCESS コマンドの実行で表示されます。 |
proc-group-name | DEFINE /PROCESS_GROUPコマンドで定義された,プロセスのグループを表すシンボル。 再帰的なシンボル定義を指定してはなりません。 |
%NEXT_PROCESS | デバッガの循環プロセス・ リスト中で可視プロセスの次のプロセス。 |
%PREVIOUS_PROCESS | デバッガの循環プロセス・ リスト中で可視プロセスの前のプロセス。 |
%VISIBLE_PROCESS | シンボル,レジスタ値,ルーチン呼び出し, ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタック, レジスタ・セット,およびイメージを持つプロセス。 |
RUN/DEBUGコマンドでデバッガを起動した場合,マルチプロセス構成で別のプロセスを実行していない状態で次のようにDISCONNECT コマンドを実行すると, デバッガのメイン・プロセスを終了することになります。
$ RUN/DEBUG image_name ... DBG> DISCONNECT image_name_process
デバッガのメイン・プロセスを保持するには,デバッガを起動して次のようにDISCONNECT コマンドを実行してください。
$ DEBUG/KEEP ... DBG> DISCONNECT image_name
この状態は,プログラム・イメージの実行が終了するまで続きます。
新バージョンのデバッガをインストールする場合に, 切り離されているがアクティブな状態のいくつかのカーネルがユーザ・ プログラムの領域を占めている状態であると,デバッガのインストールと動作に関する問題に直面することがあります。
関連コマンド
DBG> DISCONNECT JONESこのコマンドは,プロセスJONESを終了せずに,そのプロセスをデバッガの制御から解放します。
新しい画面表示を作成するか,既存の表示を変更します。
DISPLAY display-name [AT window-spec] [display-kind] [, . . . ]
新しい表示を作成している場合には,ディスプレイ名としてまだ使用されていない名前を指定します。
既存の表示を変更している場合には,次の値のどれかを指定できます。
/GENERATE (省略可能なパラメータ)または/REFRESH (許されていないパラメータ) を使用する場合以外は,画面を指定しなければなりません。
複数のオプションのウィンドウと表示対象を指定できます。
ウィンドウ指定を省略すると,画面位置は既存の表示を指定したか,新しい表示を指定したかによって異なります。
DO (command[; . . . ]) | 自動的に更新される出力表示を指定します。 デバッガに制御が移るたびに, コマンドがリストされている順番で実行されます。コマンドの出力が表示の内容となります。 複数のコマンドを指定する場合,それぞれをセミコロンで区切る必要があります。 |
INSTRUCTION | 機械語命令ディスプレイを指定します。SELECT/INSTRUCTION コマンドで現在の機械語命令ディスプレイとして選択された場合には, 後続のEXAMINE/INSTRUCTIONコマンドからの出力を表示します。 |
INSTRUCTION (command) | 自動的に更新される機械語命令ディスプレイを指定します。 指定されるコマンドはEXAMINE /INSTRUCTIONコマンドでなければなりません。機械語命令ディスプレイはデバッガに制御が移るたびに更新されます。 |
OUTPUT | 出力表示を指定します。SELECT/OUTPUT コマンドで現在の出力表示として選択された場合には,他の表示には出力されないデバッガ出力をすべて表示します。SELECT/INPUT コマンドで現在の入力表示として選択された場合には, デバッガ入力をエコーバックします。SELECT/ERROR コマンドで現在のエラー表示として選択された場合には, デバッガ診断メッセージを表示します。 |
REGISTER | (VAXのみ)自動的に更新されるレジスタ表示を指定します。 デバッガに制御が移るたびに,表示は更新されます。 |
SOURCE | ソース表示を指定します。SELECT/SOURCE コマンドで現在のソース表示として選択された場合には, 以降のTYPEコマンドまたはEXAMINE/SOURCEコマンドからの出力を表示します。 |
SOURCE (command) | 自動的に更新されるソース表示を指定します。 指定されるコマンドはTYPEコマンドまたはEXAMINE/SOURCE コマンドでなければなりません。デバッガに制御が移るたびにソース表示は更新されます。 |
PROMPT表示の表示対象は変更できません。
display-kindパラメータを省略すると,表示対象は既存の表示を指定しているのか, 新しい表示を指定しているのかによって異なります。
/MARK_CHANGEを使用すると,最後の表示更新以降に内容が変更された行があればすべて反転表示で強調表示されます。 この修飾子が特に役に立つのは, 自動的に更新される表示の中の変数を変化したときにすべて強調表示させたいときです。
/NOMARK_CHANGE修飾子(省略時の設定)はDO表示の中で変化しない行はまったくマークしないことを指定します。 この修飾子は指定された表示に関する前回の/MARK_CHANGE の作用を取り消します。
/NOPOP修飾子は(/NOPUSHと同じく)ペーストボード上のすべての表示の順番をそのままにします。
/PROCESS=(process-spec)修飾子を使用すると,指定された表示を指定されたプロセスに対応づけられます。 この修飾子を使用するときは括弧を含めなくてはなりません。 次のいずれかのprocess- spec形式で指定します。
[%PROCESS_NAME] proc-name | スペースや小文字を全く含まないプロセス名。プロセス名にはワイルドカード文字のアスタリスク(*) を含むこともできます。 |
[%PROCESS_NAME] "proc-name" | スペースや小文字を含むプロセス名。二重引用符(")の代わりに一重引用符(') を使用することもできます。 |
%PROCESS_PID proc-id | プロセス識別子(PID ,16進数)。 |
%PROCESS_NUMBER proc-number (または%PROC proc-number) | デバッガの制御下に入ったときにプロセスに割り当てられた番号。 プロセス番号はSHOW PROCESS コマンドの実行で表示されます。 |
proc-group-name | DEFINE/PROCESS_ GROUPコマンドで定義された,プロセスのグループを表すシンボル。 再帰的なシンボル定義を指定してはなりません。 |
%NEXT_PROCESS | デバッガの循環プロセス・ リスト中で可視プロセスの次のプロセス。 |
%PREVIOUS_PROCESS | デバッガの循環プロセス・ リスト中で可視プロセスの前のプロセス。 |
%VISIBLE_PROCESS | シンボル,レジスタ値,ルーチン呼び出し, ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタック, レジスタ・セット,およびイメージを持つプロセス。 |
/PROCESS修飾子を使用すると,指定した表示はDISPLAY/PROCESSコマンドが実行されたときに可視プロセスになっていたプロセスに対応づけられます。
/NOPROCESS修飾子(これが省略時の設定)を使用すると,指定した表示は可視プロセスに対応づけられます。 可視プロセスはプログラムの実行中に変化する可能性があります。
/PROCESSを指定しないと,指定した表示の(もしあれば)現在のプロセス固有の動作はもとのままになります。
詳しくは/SUFFIX修飾子を参照してください。
出力またはDO表示の場合,/SIZE:nはn行分の最新出力が表示されるように指定します。 ソース表示または機械語命令ディスプレイの場合, nはいつでも1つの時点でメモリ・バッファにいれられるソース行または命令の行数を定義します。 ただし,そのコードを表示するモジュールのソース・ コード全体に渡りソース表示をスクロールできます( ソース行は必要に応じてバッファにページングされます)。同様に, その命令を表示するルーチンの命令すべてに渡り機械語命令ディスプレイをスクロールできます( 命令は必要に応じてイメージからデコードされます) 。
/SUFFIX修飾子は,表示定義または表示定義に関連したキー定義を指定する場合のコマンド・ プロシージャで主に使用されます。
process-identifier-typeには次のいずれかのキーワードを指定できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PROCESSコマンドの実行で表示される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別子(PID) が付きます。 |
/SUFFIXのあとにprocess-identifier-typeキーワードを指定しないと, プロンプトの接尾辞がディスプレイ名の接尾辞の省略時の値として使用されます(SET PROMPT/SUFFIX コマンドを参照してください) 。/[NO]PROCESS修飾子も参照してください。
表示を作成するには,ディスプレイ名としてまだ使用されていない名前を指定します(SHOW DISPLAY コマンドを使用すれば,既存の表示がすべて表示されます) 。
省略時の設定では,DISPLAYコマンドは,表示ペーストボードの上部のPROMPT 表示の後ろで他のすべての表示の前に指定された表示を置きます。 PROMPT表示は非表示にすることはできません。指定された表示によって(PROMPT 表示以外の)他の表示で画面上の同じ領域を共用する部分が表示されなくなります。
DISPLAYコマンドに対応するキー定義のリストは,ヘルプ・トピックのKeypad_Definitions_CI を参照してください。また,現在のキー定義を調べるにはSHOW KEY コマンドを使用してください。
関連コマンド
DBG> DISPLAY REGこのコマンドはREGという定義済みレジスタ表示をその現在のウィンドウ位置に表示します。
DBG> DISPLAY/PUSH INSTこのコマンドは表示INSTを表示ペーストボードの下部で,他のすべての表示の後ろに差し込みます。
DBG> DISPLAY NEWDISP AT RT2 DBG> SELECT/INPUT NEWDISPこの例では,DISPLAYコマンドは画面の中央右の3分の1にユーザ定義表示NEWDISP を表示します。SELECT/INPUTコマンドは現在の入力表示としてNEWDISP を選択します。NEWDISPはデバッガ入力をエコーバックします。
DBG> DISPLAY DISP2 AT RS45 DBG> SELECT/OUTPUT DISP2この例では,DISPLAYコマンドは基本的に画面の右下半分で,PROMPT表示の上にDISP2 という名前の表示を作成します。PROMPT表示はS6に位置しています。 省略時の設定では,これは出力表示です。SELECT/OUTPUTコマンドは現在の出力表示としてDISP2 を選択します。
DBG> SET WINDOW TOP AT (1,8,45,30) DBG> DISPLAY NEWINST AT TOP INSTRUCTION DBG> SELECT/INST NEWINSTこの例では,SET WINDOWコマンドは1行目の45列目から始まり,下に8行, 右に30列続くTOPという名前のウィンドウを作成します。DISPLAYコマンドはTOP を通じて表示されるNEWINSTという名前の機械語命令ディスプレイを作成します。SELECT/INST コマンドは現在の機械語命令ディスプレイとしてNEWINST を選択します。
DBG> DISPLAY CALLS AT Q3 DO (SHOW CALLS)このコマンドはウィンドウQ3にCALLSという名前のDO表示を作成します。 デバッガがプログラムから制御を受け取るたびに,SHOW CALLSコマンドが実行され, 出力がCALLS表示に表示され,もとの内容を置換します。
DBG> DISPLAY/MARK EXAM AT Q2 DO (EXAMINE A,B,C)このコマンドはウィンドウQ2にEXAMという名前のDO表示を作成します。デバッガが入力を求めるプロンプトを表示するたびに, 表示には変数A,B, Cの現在の値が示されます。変更された値はどれも強調表示されます。
DBG_3> DISPLAY/PROCESS OUT_X AT S4このコマンドは表示OUT_Xを可視プロセス(プロセス3)に固有のものにし, ウィンドウS4に表示を置きます。
DBG_2> DISPLAY/PROCESS OUT_/SUFFIX AT S45 OUTPUTこのコマンドはウィンドウS45に出力表示を作成します。省略時の設定では,/PROCESS は表示を可視プロセス(この例ではプロセス2)に固有のものにします。/SUFFIX 修飾子はプロセスを識別する接尾辞をディスプレイ名OUT_ に付けます。プロセスを識別する接尾辞は可視プロセスを示します。 省略時の設定では,/ SUFFIX修飾子はプロンプトに表示されるものと同じプロセス識別接尾辞を付けます。 したがって,完全ディスプレイ名はOUT_2 です。
1つまたは複数のプロセスのコンテキストでデバッガ・コマンドを実行します。
マルチプロセス・デバッグ構成の場合(DBG$PROCESSの値がMULTIPROCESSの場合) に指定できます。
DO (command[; . . . ])
次のいずれかの形式で指定します。
[%PROCESS_NAME] proc-name | スペースや小文字を全く含まないプロセス名。プロセス名にはワイルドカード文字のアスタリスク(*) を含むこともできます。 |
[%PROCESS_NAME] "proc-name" | スペースや小文字を含むプロセス名。二重引用符(")の代わりに一重引用符(') を使用することもできます。 |
%PROCESS_PID proc-id | プロセス識別子(PID ,16進数)。 |
%PROCESS_NUMBER proc-number (または%PROC proc-number) | デバッガの制御下に入ったときにプロセスに割り当てられた番号。 プロセス番号はSHOW PROCESS コマンドの実行で表示されます。 |
proc-group-name | DEFINE/PROCESS_ GROUPコマンドで定義された,プロセスのグループを表すシンボル。 再帰的なシンボル定義を指定してはなりません。 |
%NEXT_PROCESS | デバッガの循環プロセス・ リスト中で可視プロセスの次のプロセス。 |
%PREVIOUS_PROCESS | デバッガの循環プロセス・ リスト中で可視プロセスの前のプロセス。 |
%VISIBLE_PROCESS | シンボル,レジスタ値,ルーチン呼び出し, ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタック, レジスタ・セット,およびイメージを持つプロセス。 |
可視プロセスを変更するには,SET PROCESSコマンドを使用します。
DOコマンドを使用する際には,可視プロセスでの(SET PROCESS/HOLDコマンドでの設定に従う) 保留状態は無視されることに注意してください。
関連コマンド SET PROCESS
DBG_2> DO (SHOW CALLS) For %PROCESS_NUMBER 1 module name routine name line rel PC abs PC *MOD4 SUB3 31 0000001E 0000041E For %PROCESS_NUMBER 2 module name routine name line rel PC abs PC *MOD3 SUB1 4 0000000B 0000040B DBG_2>このコマンドは現在デバッガの制御下にあるすべてのプロセスのコンテキストでSHOW CALLS コマンドを実行します。
DBG_3> DO/PROCESS=(%PROC 2,%PROC 1) (EVAL/ADDR X;EXAMINE X) For %PROCESS_NUMBER 2 %DEBUG-E-NOSYMBOL, symbol 'X' is not in the symbol table For %Process_number 1 512 TEST\X: 1 DBG_3>このコマンドは2つのコマンドEVAL/ADDR XとEXAMINE Xをプロセス2と1のコンテキストで実行します。
メモリの内容を表示します。
DUMP address-expression1 [:address-expression2]
一般に,DUMPコマンドを入力すると,デバッガはaddress-expression1を評価して, プログラム記憶位置を求めます。そのあと,デバッガは次の方法で, その記憶位置に格納されている値を表示します。
どちらの場合も,DUMPコマンドはこれらの記憶位置の内容を現在の基数で, ロングワード(省略時の設定)整数値として表示します。
表示のために使用する省略時の基数は,ほとんどの言語で10進数です。ただし,VAX プロセッサでは,BLISSとMACRO-32 MACRO-32は例外であり,これらの言語の場合は,16進数が省略時の基数です。Alpha プロセッサでは,BLISS,MACRO-32, MACRO-64 MACRO-32,MACRO-64 は例外であり,これらの言語の省略時の基数は16 進数です。
他の基数でデータを表示するには,4つの基数修飾子(/BINARY, /DECIMAL,/HEXADECIMAL,/OCTAL)のいずれかを使用します。また, SET RADIXコマンドとSET RADIX/OVERRIDEコマンドを使用して,省略時の基数を変更することもできます。
表示の形式を変更するには,サイズ修飾子(/BYTE,/WORD,/LONGWORD, /QUADWORD)のいずれかを使用します。
DUMPコマンドは,現在のエンティティ組み込みシンボル%CURLOCとピリオド(.) を,指定されたアドレス式によって示される記憶位置に設定します。 論理的に前の記憶位置(%PREVLOCまたはサーカンフレックス文字(^)) と後の記憶位置(%NEXTLOC)は,現在のエンティティの値をもとに決定されます。
関連コマンド:
DBG> DUMP/QUAD R16:R25 0000000000000078 0000000000030038 8.......x....... %R16 000000202020786B 0000000000030041 A.......kx ... %R18 0000000000030140 0000000000007800 .x......@....... %R20 0000000000010038 0000000000000007 ........8....... %R22 0000000000000006 0000000000000000 ................ %R24 DBG>このコマンドは,汎用レジスタR16〜R25をクォドワード形式の16進数で表示します。
DBG> DUMP APPLES 00000000 00030048 00000000 00004220 B......H....... 00000000000300B0 63724F20 746E6F6D 646F6F57 000041B0 ° A..Woodmont Orc 00000000000300C0 20202020 20202020 20202073 64726168 hards 00000000000300D0 6166202C 73646E61 6C747275 6F432020 Courtlands, fa 00000000000300E0 00002020 2079636E ncy .. 00000000000300F0 DBG>このコマンドは,APPLESというエンティティの値をロングワード形式の16 進数で表示します。
DBG> DUMP/BYTE/DECIMAL 30000:30040 0 0 0 0 0 3 0 -80 °...... 0000000000030000 0 0 0 0 0 3 1 64 @....... 0000000000030008 0 0 0 0 0 3 0 48 0....... 0000000000030010 0 0 0 0 0 3 0 56 8....... 0000000000030018 0 0 0 0 0 3 0 -64 `A...... 0000000000030020 0 0 0 0 0 3 0 -80 °...... 0000000000030028 0 0 0 0 0 0 7 -50 ^I...... 0000000000030030 101 101 119 32 116 120 101 110 next wee 0000000000030038 107 k 0000000000030040 DBG>このコマンドは,記憶位置30000〜30040をバイト形式の10進数で表示します。
SET EDITORコマンドで設定されたエディタを起動します。ユーザがSET EDITORコマンドを入力していなかった場合には,システムにインストールされていればDEC ランゲージ・センシティブ・エディタ(LSEDIT)を起動します。
EDIT [[module-name\] line-number]
SET EDITORコマンドには,サブプロセス内から各種のエディタを起動するためのオプションや, 呼び出し可能インタフェースを使用して各種のエディタを起動するためのオプションがあります。
関連コマンド
DBG> EDITこのコマンドは現在のソース・ディスプレイに表示されるコードを持つソース・ ファイルを編集するために,サブプロセスとしてDECランゲージ・ センシティブ・エディタ(LSEDIT)をスポーンします。編集カーソルはソース表示の中央にある行の先頭に置かれます。
DBG> EDIT SWAP\12このコマンドは,SWAPというモジュールがあるソース・ファイルを編集するために, サブプロセスとしてDECランゲージ・センシティブ・エディタ(LSEDIT) を作成します。編集カーソルはソース行の12行目の先頭に置かれます。
DBG> SET EDITOR/CALLABLE_EDT DBG> EDITこの例では,SET EDITOR/CALLABLE_EDTコマンドはEDTが省略時のエディタであることと, それが(サブプロセスとして作成するのではなく)呼び出し可能インタフェースを通じて起動されることを指定しています。EDIT コマンドは現在のソース表示に表示されるコードを持つソース・ ファイルを編集するためにEDT を起動します。省略時の修飾子である/NOSTART_POSITION がEDTに対して有効であるため,編集カーソルはソース行の1行目の先頭に置かれます。
プログラムでの非同期システム・トラップ(AST)の実行要求を許可します。
ENABLE AST
関連コマンド
DBG> ENABLE AST DBG> SHOW AST ASTs are enabled DBG>ENABLE ASTコマンドでASTの実行要求を許可します。それをSHOW ASTコマンドによって確認します。
現在の言語(省略時の設定では,メイン・プログラムを含むモジュールの言語) で言語式の値を表示します。
EVALUATE language-expression[, . . . ]
現在の言語は前回SET LANGUAGEコマンドで設定された言語です。SET LANGUAGEコマンドが入力されていなかった場合には,現在の言語は省略時の設定ではメイン・ プログラムを含むモジュールの言語です。
式に種々のコンパイラ生成型のシンボルが含まれている場合には,デバッガは現在の言語の型変換規則を使用してその式を評価します。
デバッガは2進数,10進数,16進数,8進数の4つの基数のどれか1つで整数データを解釈したり表示したりできます。 現在の基数は前回SET RADIXコマンドで設定した基数です。
SET RADIXコマンドを入力しなかった場合,データの入力と表示のどちらに対しても, ほとんどの言語の省略時の基数は10進数です。VAXプロセッサでは,例外はBLISSとMACRO-32です。MACRO-32 です。この2つの省略時の基数は16進数です。Alpha プロセッサでは,例外はBLISSとMACRO-32とMACRO-64です。MACRO-32 とMACRO-64です。この3つの省略時の基数は16進数です。
基数修飾子(/BINARY,/OCTALなど)を使用すれば別の基数で整数データを表示できます。 これらの修飾子はユーザが指定したデータをデバッガが解釈する方法には影響を及ぼしません。 現在の出力基数は上書きされますが, 入力基数はもとのままです。
EVALUATEコマンドは現在の値の組み込みシンボル%CURVALと円記号(\)を指定された式で示される値に設定します。
関数呼び出しが含まれている言語式を評価することはできません。たとえば,PRODUCT が2つの整数を乗算する関数である場合には,EVALUATE PRODUCT(3,5)というコマンドは使用できません。関数の返却値を変数に代入してその変数を調べれば, 結果として関数呼び出しを含む式を評価できます。
Alphaプロセッサでは,EVALUATE procedure-nameというコマンドは指定されたルーチン, エントリ・ポイントまたはAdaパッケージの(コード・アドレスではなく) プロシージャディスクリプタアドレスを表示します。
言語に固有の演算子と構造に対するデバッガ・サポートについての詳しい説明は,HELP Language をタイプしてください。
関連コマンド
DBG> EVALUATE 100.34 * (14.2 + 7.9) 2217.514 DBG>このコマンドは,デバッガを計算機として使用することにより,100.34と(14 .2 + 7.9) の乗算を行います。
DBG> EVALUATE/OCTAL X 00000001512 DBG>このコマンドはシンボルXを評価し,その結果を8進基数で表示します。
DBG> EVALUATE TOTAL + CURR_AMOUNT 8247.20 DBG>このコマンドは,TOTALとCURR_AMOUNTという2つの実変数の値の合計を評価します。
DBG> DEPOSIT WILLING = TRUE DBG> DEPOSIT ABLE = FALSE DBG> EVALUATE WILLING AND ABLE False DBG>この例では,EVALUATEコマンドはWILLINGとABLEという2つのブール変数の現在の値の論理積を評価します。
DBG> EVALUATE COLOR'FIRST RED DBG>このAdaの例では,このコマンドはCOLORという列挙型の最初の要素を評価します。
アドレス式を評価し,その結果をメモリ・アドレスまたはレジスタ名として表示します。
EVALUATE/ADDRESS address-expression[, . . . ]
デバッガは2進数,10進数,16進数,8進数の4つの基数のどれか1つで整数データを解釈したり表示したりできます。 ほとんどの言語の場合, データの入力と表示のどちらに対しても,省略時の基数は10進数です。 88888888888888888888
VAXプロセッサでは,例外はBLISSとMACRO-32です。MACRO-32 です。この2つの省略時の基数は16進数です。Alphaプロセッサでは,例外はBLISSとMACRO-32とMACRO-64です。MACRO-32 とMACRO-64です。この3つの省略時の基数は16進数です。
基数修飾子(/BINARY,/OCTALなど)を使用すれば別の基数でアドレス・データを表示できます。 これらの修飾子はユーザが指定したデータをデバッガが解釈する方法には影響を及ぼしません。 現在の出力基数は上書きされますが, 入力基数はもとのままです。
変数の値がメモリではなくレジスタに現在格納されている場合には, EVALUATE/ ADDRESSコマンドはレジスタを識別します。この場合,基数修飾子は全く働きを持ちません。
EVALUATE/ADDRESSコマンドは,指定されたアドレス式で示される記憶位置に現在の要素組み込みシンボルの%CURLOC とピリオド(.)を設定します。 論理的先行データ(%PREVLOCまたはサーカンフレックス文字(^) )と論理的後続データ(%NEXTLOC) は現在の要素の値に基づきます。
Alphaプロセッサでは,EVALUATE/ADDRESS procedure-nameというコマンドは指定されたルーチン, エントリ・ポイントまたはAdaパッケージの(コード・ アドレスではなく)プロシージャディスクリプタアドレスを表示します。
関連コマンド
DBG> EVALUATE/ADDRESS MODNAME\%LINE 110 3942 DBG>このコマンドはアドレス式MODNAME\%LINE 110によって示されるメモリ・ アドレスを表示します。
DBG> EVALUATE/ADDRESS/HEX A,B,C 000004A4 000004AC 000004A0 DBG>このコマンドはアドレス式A,B,Cで示されるメモリ・アドレスを16進基数で表示します。
DBG> EVALUATE/ADDRESS X MOD3\%R1 DBG>このコマンドは変数XがレジスタR1に対応していることを示します。Xは非静的( レジスタ)変数です。
プログラム変数の現在の値を表示します。より通常は,アドレス式で示される要素の値を表示します。
EXAMINE [address-expression[:address-expression] [, . . . ]]
集合体変数(配列またはレコード構造体などの複合データ構造体) の名前を指定すると,デバッガはすべての要素の値を表示します。配列の場合, 各配列要素の添字(インデックス)と値が示されます。レコードの場合, 各レコードの構成要素の名前と値が示されます。
個々の配列要素,配列断面またはレコードの構成要素を指定するには,現在の言語の構文に従います。
要素の範囲を指定する場合,その範囲にある最初の要素を示すアドレス式の値は同じ範囲にある最後の要素を示すアドレス式の値よりも小さくなければなりません。 デバッガは最初のアドレス式で指定される値,そのアドレス式の論理的後続データ, その次の論理的後続データという順に,最後のアドレス式で指定される要素までを表示します。 コンマで範囲と範囲を区切ることにより, 複数の範囲からなるリストを指定できます。
ベクタ・レジスタとベクタ命令に特有の情報については,/TMASK, /FMASK,/VMRおよび/OPERANDSの修飾子を参照してください。
この修飾子は/DEFAと短縮できます。
この修飾子は/DEFIと短縮できます。
Alphaプロセッサでは,値を調べる個々の値をIEEE T 浮動小数点型(倍精度,8バイト長)で表示します。
画面モードでは,EXAMINE/INSTRUCTIONコマンドの出力は,現在機械語命令ディスプレイがあればそこに送られます。 出力表示やDO表示には送られません。 機械語命令ディスプレイでの矢印は値を調べる命令を指します。
Alphaプロセッサでは,EXAMINE/INSTRUCTION procedure-nameコマンドは指定されたルーチン,エントリ・ポイントまたはAda パッケージのコード・アドレスにある最初の命令を表示します。
現在のPC値(たとえば,EXAMINE/OPERANDS .0\%PC)での命令を値を調べる場合にだけ/OPERANDS を使用してください。現在のPC値にない命令のオペランドの値を調べると, マシンの状態(レジスタの内容)がその命令に合わせて設定されていないため, 間違った結果が出力される恐れがあります。
画面モードでは,オペランド情報は現在の出力表示に出力されます。
ベクタ命令のオペランドの値を調べるときは,省略時の設定では,その命令に対応している可能性のあるオペランド要素のマスキングが実行されます。/TMASK 修飾子と/FMASK修飾子を使用すると,他のいくつかのマスクを指定できます。 ベクタ長レジスタ(VLR)の現在の値により,表示できるベクタ・ レジスタの最上位要素が制限されます。
SET MODE [NO]OPERANDS=keywordコマンドも参照してください。 このコマンドを使用すれば,命令を調べるときに表示されるオペランド情報の量に省略時のレベルを設定できます。
値を調べる個々の値の記憶位置に対応するソース行を表示します。表示する値は機械語コード命令に対応していなければならず, したがって行番号, ラベル,ルーチン名または命令のメモリ・アドレスでなければなりません。 表示する値はデータに対応する変数名やその他のアドレス式にすることはできません。
画面モードでは,EXAMINE/SOURCEコマンドの出力は,現在ソース表示があればそこに出力されます。 出力表示やDO表示には出力されません。ソース表示での矢印は指定された最後の要素( または要素のリストで指定した最後の要素) に対応するソース行を指します。
Alphaプロセッサでは,EXAMINE/SOURCE procedure-nameコマンドは指定されたルーチン,エントリ・ ポイントまたはAdaパッケージのコード・アドレスにソース・コードを表示します。
たとえば,(/OPERANDS修飾子を使用することにより)ベクタ命令のオペランドの値を調べるとき, これらの修飾子を使用すれば,その命令に対応している可能性のあるオペランド要素のマスキングを上書きすることができます。
/TMASK修飾子を指定すると,マスクの設定ビット(ビット値1)に対応するレジスタまたは配列の要素にだけEXAMINE コマンドが適用されます。 /FMASK修飾子を指定すると,マスクのクリア・ビット(ビット値0)に対応する要素にだけEXAMINE コマンドが適用されます。ベクタ長レジスタ(VLR) の現在の値は,最高の配列要素ではなく,表示できる最高のレジスタ要素を制限します。
省略時の設定では,/TMASKまたは/FMASKでマスク・アドレス式を指定しないと, ベクタ・マスク・レジスタ(VMR)が使用されます。つまり,EXAMINE コマンドは( /TMASKの場合には)設定ビットまたは(/FMASKの場合には)クリア・ ビットに対応するベクタ・レジスタまたは配列の要素だけに適用されます。
/TMASKまたは/FMASKでマスク・アドレス式を指定すると,そのアドレスでの値がマスクとして使用され, 次の規則に従います。
確認した文字列を変換する場合,デバッガは,実行されているプロセスのロケール・ データベースを使用します。省略時の設定はCロケールです。
最適化されたコードをデバッグすると,EXAMINEコマンドは,スプリット・ ライフタイム変数が値を受け取る定義ポイントを表示します。スプリット・ ライフタイム変数についての詳しい説明は,『デバッガ説明書』を参照してください。 省略時の設定では,EXAMINEコマンドは,最高5つまでの定義ポイントを表示します。/DEFINITIONS 修飾子を使用すると,定義ポイントの数を指定できます。
デバッガはシンボリック・アドレス式(プログラムで宣言されたシンボリック名) に対応するコンパイラ生成型を認識します。シンボリック・アドレス式には次の要素が含まれます。
通常,EXAMINEコマンドを入力すると,デバッガはプログラム記憶位置を求めるために指定されたアドレス式を評価します。 そしてその位置に格納されている値を次のように表示します。
ベクタ・レジスタ(VAXのみ)とベクタ命令(VAXのみ)に特有の情報については,/TMASK ,/FMASKおよび/OPERANDSの修飾子を参照してください。
プログラム記憶位置に対応する型を変更して,その記憶位置のデータを他のデータ形式で表示できるようにする方法はいくつもあります。
デバッガは2進数,10進数,16進数,8進数の4つの基数のどれか1つで整数データを解釈したり表示したりできます。
ほとんどの言語の場合,データの入力と表示のどちらに対しても,省略時の基数は10 進数です。VAXプロセッサでは,例外はBLISS と MACRO-32です。 MACRO-32です。この2つの省略時の基数は16 進数です。Alphaプロセッサでは,例外はBLISS とMACRO-32とMACRO-64です。MACRO-32とMACRO-64です。この3つの省略時の基数は16 進数です。
EXAMINEコマンドにはデータを他の基数で表示できるようにするための基数修飾子が4 つあります(/BINARY,/DECIMAL,/HEXADECIMAL,/OCTAL)。 SET RADIXコマンドとSET RADIX/OVERRIDEコマンドを使用して,省略時の基数を変更することもできます。
EXAMINEコマンドには,型修飾子と基数修飾子だけでなく,他の用途のための修飾子があります。
EXAMINEコマンドは現在の値の組み込みシンボル%CURLOCとピリオド(.)を指定されたアドレス式で示される記憶位置に設定します。 論理的先行データ(%PREVLOC またはサーカンフレックス文字(^) )と論理的後続データ(%NEXTLOC) は現在の値に基づきます。
関連コマンド
DBG> EXAMINE COUNT SUB2\COUNT: 27 DBG>このコマンドはモジュールSUB2の整数変数COUNTの値を表示します。
DBG> EXAMINE PART_NUMBER INVENTORY\PART_NUMBER: "LP-3592.6-84" DBG>このコマンドは文字列変数PART_NUMBERの値を表示します。
DBG> EXAMINE SUB1\ARR3 SUB1\ARR3 (1,1): 27.01000 (1,2): 31.01000 (1,3): 12.48000 (2,1): 15.08000 (2,2): 22.30000 (2,3): 18.73000 DBG>このコマンドはモジュールSUB1の配列ARR3にあるすべての要素の値を表示します。ARR3 は,要素数が2 x 3個の実数配列です。
DBG> EXAMINE SUB1\ARR3(2,1:3) SUB1\ARR3 (2,1): 15.08000 (2,2): 22.30000 (2,3): 18.73000 DBG>このコマンドは,配列SUB1\ARR3の配列断面の要素の値を表示します。この配列断面には," 行" 2の"列" 1から3が含まれます。
DBG> EXAMINE VALVES.INTAKE.STATUS MONITOR\VALVES.INTAKE.STATUS: OFF DBG>このコマンドはモジュールMONITOR内のネストされたレコードの構成要素VALVES.INTAKE.STATUS の値を表示します。
DBG> EXAMINE/SOURCE SWAP module MAIN 47: procedure SWAP(X,Y: in out INTEGER) is DBG>このコマンドはルーチンSWAPが宣言されているソース行(ルーチンSWAPの記憶位置) を表示します。
DBG> DEPOSIT/ASCII:7 WORK+20 = 'abcdefg' DBG> EXAMINE/ASCII:7 WORK+20 DETAT\WORK+20: "abcdefg" DBG> EXAMINE/ASCII:5 WORK+20 DETAT\WORK+20: "abcde" DBG>この例では,DEPOSITコマンドは要素'abcdefg'を7バイト長のASCII文字列としてシンボルWORK で示される記憶位置から20バイト先の記憶位置に格納します。 最初のEXAMINEコマンドはその記憶位置にある要素の値を7バイト長のASCII 文字列(abcdefg)として表示します。2番目のEXAMINEコマンドはその記憶位置の要素の値を5 バイト長のASCII文字列(abced)として表示します。
DBG> EXAMINE/OPERANDS=FULL .0\%PC X\X$START+0C: MOVL B^04(R4),R7 B^04(R4) R4 contains X\X$START\M (address 00001054), B^04(00001054) evaluates to X\X$START\K (address 00001058), which contains 00000016 R7 R7 contains 00000000 DBG>VAXシステムでは,このコマンドは現在のPC値での命令(MOVL)を表示します。/OPERANDS=FULL を使用すると,オペランド情報の最大レベルが表示されます。
DBG> SET RADIX HEXADECIMAL DBG> EVALUATE/ADDRESS WORKDATA 0000086F DBG> EXAMINE/SYMBOLIC 0000086F MOD3\WORKDATA: 03020100 DBG> EXAMINE/NOSYMBOLIC 0000086F 0000086F: 03020100 DBG>この例では,EVALUATE/ADDRESSコマンドは変数WORKDATAのメモリ・アドレスが16 進数の0000086Fであることを示します。2つのEXAMINEコマンドはアドレスをWORKDATA にシンボル化するかどうかを制御するために, /[NO]SYMBOLICを使用してそのアドレスに含まれている値を表示します。
DBG> EXAMINE/HEX FIDBLK FDEX1$MAIN\FIDBLK (1): 00000008 (2): 00000100 (3): 000000AB DBG>このコマンドは16進基数で配列変数FIDBLKの値を表示します。
DBG> EXAMINE/DECIMAL/WORD NEWDATA:NEWDATA+6 SUB2\NEWDATA: 256 SUB2\NEWDATA+2: 770 SUB2\NEWDATA+4: 1284 SUB2\NEWDATA+6: 1798 DBG>このコマンドはNEWDATAからNEWDATA + 6バイトで示される記憶位置の範囲内にあるワード整数要素(2 バイト要素)の値を10進基数で表示します。
DBG> EXAMINE/TASK SORT_INPUT MOD3\SORT_INPUT: %TASK 12 DBG>このコマンドはSORT_INPUTという名前のタスク・オブジェクトのタスクID を表示します。
デバッグ・セッションを終了するか,またはマルチプロセス・プログラムの1 つまたは複数のプロセスを終了し,アプリケーション宣言終了ハンドラを実行できるようにします。 コマンド・プロシージャまたはDO句の中で使用し, プロセスを全く指定しないと,その時点でそのコマンド・プロシージャまたはDO 句が終了されます。
EXIT [process-spec[, . . . ]]
現在デバッガの制御下にあるプロセスを指定します。次のいずれかの形式で指定します。
[%PROCESS_NAME] proc-name | スペースや小文字を全く含まないプロセス名。プロセス名にはワイルドカード文字のアスタリスク(*) を含むこともできます。 |
[%PROCESS_NAME] "proc-name" | スペースや小文字を含むプロセス名。二重引用符(")の代わりに一重引用符(') を使用することもできます。 |
%PROCESS_PID proc-id | プロセス識別子(PID ,16進数)。 |
%PROCESS_NUMBER proc-number (または%PROC proc-number) | デバッガの制御下に入ったときにプロセスに割り当てられた番号。 プロセス番号はSHOW PROCESS コマンドの実行で表示されます。 |
proc-group-name | DEFINE/PROCESS_ GROUPコマンドで定義された,プロセスのグループを表すシンボル。 再帰的なシンボル定義を指定してはなりません。 |
%NEXT_PROCESS | デバッガの循環プロセス・ リスト内の可視プロセスの次のプロセス。 |
%PREVIOUS_PROCESS | デバッガの循環プロセス・ リスト内の可視プロセスの前のプロセス。 |
%VISIBLE_PROCESS | シンボル,レジスタ値,ルーチン呼び出し, ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタック, レジスタ・セット,およびイメージを持つプロセス。 |
すべてのプロセスを指定するためにワイルドカード文字のアスタリスク(*) を使用することもできます。
デバッグ・セッションを終了するには,パラメータを全く指定しないでデバッガ・ プロンプトに対しEXITコマンドを入力します。これによりセッションが順序正しく終了されます。 つまり,プログラムのアプリケーション宣言終了ハンドラ( もしあれば)が実行され,次にデバッガの終了ハンドラが実行され( ログ・ファイルをクローズし,画面とキーパッドの状態を復元するなど) ,制御がコマンド・インタプリタに戻ります。そのあとはDCL コマンドのDEBUGやCONTINUEを入力してもプログラムのデバッグを続けることはできません( デバッガを再起動する必要があります)。
EXITは任意のアプリケーション宣言終了ハンドラを実行するので,該当する終了ハンドラにブレークポイントを設定することができます。 設定したブレークポイントはEXIT と入力すると検出されます。したがって,EXITを使用して終了ハンドラをデバッグできます。
アプリケーション宣言終了ハンドラを実行しないでデバッグ・セッションを終了するには,EXIT の代わりにQUITコマンドを使用します。
デバッガがコマンド・プロシージャの中で(パラメータを全く指定しないで) E XIT コマンドを実行すると,制御はそのコマンド・プロシージャを起動したコマンド・ ストリームに戻ります。コマンド・ストリームは,端末, 外側(当該コマンド・プロシージャを含んでいる側)のコマンド・プロシージャ, コマンドまたは画面表示定義でのDO句とすることができます。 たとえば,コマンド・プロシージャがDO句の中から起動された場合には, 制御はそのDO句に戻り,そこでデバッガは(コマンド・シーケンスの中にあれば) 次のコマンドを実行します。
デバッガは,DO句の中で(パラメータを全く指定しないで) EXITコマンドを実行すると, その句にある残りのコマンドは無視し,プロンプトを表示します。
マルチプロセス・プログラムをデバッグするためにマルチプロセス・デバッグ構成を使用している場合( 論理名DBG$PROCESSの値がMULTIPROCESSの場合) ,EXITコマンドを使用すればデバッグ・セッションを終了せずに,指定したプロセスを終了できます。 プロンプトに対してEXITコマンドを入力するか, それともコマンド・プロシージャまたはDO句の中でEXITコマンドを使用するかにかかわらず, 同じ方法と動作が適用されます。
1つまたは複数のプロセスを終了するには,それらのプロセスをパラメータとして指定してEXIT コマンドを入力します。この結果,指定されたプロセスのイメージが順序正しく終了され, それらのイメージに対応するアプリケーション宣言終了ハンドラが実行されます。 その後は,指定したプロセスはSHOW PROCESS/ALL コマンドを実行しても表示されなくなります。 SET PROCESS/HOLDコマンドの結果,指定したプロセスの中に保留状態だったものがある場合, 保留状態は無視されます。
指定したプロセスが終了処理を開始すると,保留されていない未指定のプロセスが実行を開始します。 実行が開始されると,その実行がどのように継続されるかはユーザがSET MODE [NO]INTERRUPT コマンドを入力したかどうかによって異なります。 省略時の設定(SET MODE INTERRUPT)では,実行はプロセスのどれかで中断されるまで継続します。 中断された時点で,イメージを実行していた他のどれかのプロセスで割り込みがかかり, デバッガが入力を促します。
アプリケーション宣言終了ハンドラを実行したり,別の方法で実行を開始したりしないで指定のプロセスを終了するには,EXIT コマンドではなくQUIT コマンドを使用します。
関連コマンド
DBG> EXIT $このコマンドはデバッグ・セッションを終了し,DCLレベルに戻ります。
JONES_1> EXIT %NEXT_PROCESS, %PROCESS_NAME JONES_3, %PROC 5 JONES_1>このコマンドを実行すると,マルチプロセス・プログラムの3つのプロセスが順序正しく終了します。 つまり,プロセス・リスト内の可視プロセスの次のプロセス, プロセスJONES_3,プロセス5が終了します。指定されたプロセスが終了したあと, 制御はデバッガに戻ります。
中にこのコマンドが入っている1つまたは複数のFOR,REPEATまたはWHILE のループを終了します。
EXITLOOP [integer]
関連コマンド
DBG> WHILE 1 DO (STEP; IF X .GT. 3 THEN EXITLOOP)WHILE 1コマンドは繰り返すたびにSTEPコマンドを実行する無限ループを作成します。STEP が1回終わるたびに,Xの値がテストされます。Xが3より大きい場合には,EXITLOOP コマンドはループを終了します(Fortranの例) 。
ディスプレイに対応するウィンドウを拡大または縮小します。
EXPAND [display-name[, . . . ]]
ディスプレイを指定しないと,SELECTコマンドの設定した現在のスクロール・ ディスプレイが選択されます。
/SUFFIX修飾子は,ディスプレイ定義またはディスプレイ定義に関連したキー定義を指定する場合のコマンド・ プロシージャで主に使用されます。
process-identifier-typeには次のいずれかのキーワードを指定できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PR OCESSコマンドの実行で表示される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別子(PID ) が付きます。 |
/SUFFIXのあとにprocess-identifier-typeキーワードを指定しないと, プロンプトの接尾辞がディスプレイ名の接尾辞の省略時の値として使用されます(SET PROMPT/SUFFIX コマンドを参照してください)。
EXPANDコマンドは指定された修飾子(/UP:[n],/DOWN :[n],RIGHT:[n], /LEFT:[n])に従ってディスプレイ・ウィンドウの1つまたは複数の境界を移動します。
EXPANDコマンドはディスプレイ・ペーストボード上でのディスプレイの順番には影響を及ぼしません。EXPAND コマンドを実行すると,指定したディスプレイで他のディスプレイが見えなくなったり, 見えるようになったりします。 また,指定したディスプレイが他のディスプレイによって部分的または全体的に見えなくなることもあります。 どのようになるかはディスプレイ相互間の順序によります。
PROMPTディスプレイを除き,どのディスプレイもそれが見えなくなるポイント ( そのポイントで"removed"とマークされる)まで縮小できます。そこまで縮小されると, 今度はそのポイントから拡大できます。見えなくなるポイントまでディスプレイを縮小すると, そのディスプレイに対して選択された属性を失うことになります。PROMPT ディスプレイは水平方向には縮小も拡大もできませんが, 垂直方向には2行分縮小できます。
ウィンドウの境界は上方向には画面の辺までしか拡大できません。ウィンドウの左と上の境界はディスプレイのそれぞれ左辺と上辺を超えて拡大することはできません。 右の境界はディスプレイの左辺から255列まで拡大できます。 ソース・ディスプレイまたは機械語命令ディスプレイの下の境界は, 下方向にはディスプレイの下辺まで(ソース・モジュールまたはルーチンの命令の端) しか拡大できません。レジスタ・ディスプレイはそのフル・ サイズを超えて拡大することはできません。
EXPANDコマンドに対応するキー定義のリストについては,ヘルプ・トピックのKeypad_Definitions_CI を参照してください。また,現在のキー定義を調べるにはSHOW KEY コマンドを使用してください。
関連コマンド
DBG> EXPAND/RIGHT:6このコマンドは現在のスクロール・ディスプレイの右の境界を右に6列移動します。
DBG> EXPAND/UP/RIGHT:-12 OUT2このコマンドはOUT2ディスプレイの上の境界を上に1行,右の境界を左に1 2列移動します。
DBG> EXPAND/DOWN:99 SRCこのコマンドはSRCディスプレイの下の境界を画面の下辺まで降ろします。
画面表示の内容をファイルに保存するか,または現在の画面状態をあとで再構成するために必要なコマンドのすべてを盛り込んだデバッガ・ コマンド・ プロシージャを作成します。
EXTRACT [display-name[, . . . ]] [file-spec]
ディスプレイ名のワイルドカード文字のアスタリスク(*)は使用できません。/ALL 修飾子を指定する場合,ディスプレイ名は指定できません。
/SCREEN_LAYOUTを指定する場合,ファイルの省略時の指定はSYS$DISK:[]DBGS CREEN.COM です。指定しない場合,省略時の指定はSYS$DISK:[]DEBUG.TXT です。
/SUFFIX修飾子は,ディスプレイ定義またはディスプレイ定義に関連したキー定義を指定する場合のコマンド・ プロシージャで主に使用されます。
process-identifier-typeには次のいずれかのキーワードを指定できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PROCESSコマンドの実行で表示される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別子(PID) が付きます。 |
/SUFFIXのあとにprocess-identifier-typeキーワードを指定しないと, プロンプトの接尾辞がディスプレイ名の接尾辞の省略時の値として使用されます(SET PROMPT/SUFFIX コマンドを参照してください) 。
PROMPTディスプレイをファイルに書き出すことはできません。
関連コマンド
DBG> EXTRACT SRCこのコマンドはSYS$DISK:[]DEBUG.TXTファイルにSRCディスプレイのすべての行を書き込みます。
DBG> EXTRACT/APPEND OUT [JONES.WORK]MYFILEこのコマンドは[JONES.WORK]MYFILE.TXTファイルの終わりにOUTディスプレイのすべての行を追加します。
DBG> EXTRACT/SCREEN_LAYOUTこのコマンドはSYS$DISK:[]DBGSCREEN.COMファイルに画面を再構成するために必要なデバッガ・ コマンドを書き込みます。
変数を増分しながら一連のコマンドを指定された回数実行します。
FOR name=expression1 TO expression2 [BY expression3] DO (command[; . . . ])
expression3 | FORコマンドの動作 |
---|---|
正の値 | nameパラメータは,expression2 の値より大きくなるまで,expression1 の値からexpression3 の値ずつ増分される。 |
負の値 | nameパラメータは,expression2 の値より小さくなるまで,expression1 の値から expression3 の値ずつ減分される。 |
0 | デバッガはエラー・ メッセージを返す。 |
Omitted | デバッガは,値が+1であるものとみなす。 |
関連コマンド
DBG> FOR I = 10 TO 1 BY -1 DO (EXAMINE A(I))このコマンドは配列を後ろから前に調べます。
DBG> FOR I = 1 TO 10 DO (DEPOSIT A(I) = 0)このコマンドは配列を0に初期化します。
プログラムの実行を開始または再開します。
GO [address-expression]
GOコマンドでアドレス式を指定すると,それはプログラムの通常の制御の流れを変えるため, 思いがけない結果が生じる可能性があります。たとえば, デバッグ・セッションの最中にGO %LINE 1というコマンドを入力すればプログラムの先頭から実行を再開できますが, そのプログラムはすでに実行されているため, 変数によっては,最初に同じプログラムを実行したときとは異なった内容に初期化されるものもあります。
例外ブレークポイントを検出すると(SET BREAK/EXCEPTIONコマンドまたはSTEP/EXCEPTION コマンドの結果),実行はアプリケーション宣言条件ハンドラが起動される前に中断されます。 そのあとGOコマンドで実行を再開すると, 動作は次のようになります。
マルチプロセス・プログラムをデバッグするためにマルチプロセス・デバッグ構成を使用している場合( 論理名DBG$PROCESSの値がMULTIPROCESSの場合) ,さらに次の点にも注意してください。
関連コマンド
DBG> GO . . . 'Normal successful completion' DBG>このコマンドはプログラムの実行を開始します。その実行はやがて正常に完了します。
DBG> SET BREAK RESTORE DBG> GO ! 実行を開始 . . . break at routine INVENTORY\RESTORE 137: procedure RESTORE; DBG> GO ! 実行を再開 . . .この例では,SET BREAKコマンドはブレークポイントをルーチンRESTOREに設定します。 最初のGOコマンドはプログラムの実行を開始します。それはやがてルーチンRESTORE のブレークポイントで中断されます。2番目のGOコマンドはブレークポイントから実行を再開します。
DBG> GO %LINE 42このコマンドは実行が現在中断されているモジュールの42行目で実行を再開します。
デバッガ・コマンドと選択されたトピックに関するオンライン・ヘルプを表示します。
HELP topic [subtopic [ . . . ]]
特定の修飾子またはパラメータに関する情報を獲得するには,それをサブトピックとして指定します。 すべての修飾子に関する情報が必要な場合には,"qualifier" をサブトピックとして指定します。すべてのパラメータに関する情報が必要な場合には,"parameter" をサブトピックとして指定します。1 つのコマンドに関連するすべてのパラメータ,修飾子,その他のサブトピックについての情報が必要な場合には, アスタリスク(*)をサブトピックとして指定します。
コマンドに関するヘルプ以外にも,画面機能,キーパッド・モードなどのさまざまなトピックについてオンライン・ ヘルプを獲得できます。HELPと入力すると, コマンドといっしょにトピック・キーワードがリストされます。
デバッガの今回のリリースでの新機能の概略については, HELP New_ Featuresをタイプして参照してください。
定義済みキーパッド・キーの機能についてのヘルプは,ヘルプ・トピックのKeypad_Definitions_CI を参照してください。また,現在のキー定義を調べるにはSHOW KEY コマンドを使用してください。
DBG> HELP GOこのコマンドはGOコマンドのヘルプを表示します。
言語式(ブール式)が真として評価された場合に一連のコマンドを実行します。
IF Boolean-expression THEN (command[; . . . ]) [ELSE (command[; . . . ])]
関連コマンド
DBG> SET BREAK R DO (IF X .LT. 5 THEN (GO) ELSE (EXAMINE X))このコマンドを実行すると,デバッガはXの値が5未満であれば,Rの記憶位置( ブレークポイント)でプログラムの実行を中断します(Fortranの例) 。Xの値が5 以上の場合には,その値が表示されます。
プログラム変数または言語式の現在の値をDECwindowsインタフェースのモニタ・ ビューに表示します。
MONITOR expression
集合体変数(配列またはレコード構造などのような複合データ構造)の名前を指定すると, モニタ・ビューはその変数の値として"Aggregate"と表示します。 そのあと変数名をダブルクリックすれば,すべての要素の値を獲得できます。( 『デバッガ説明書』を参照。)
個々の配列要素,配列断面またはレコードの構成要素を指定するには,現在の言語の構文に従います。
Alphaプロセッサでは,モニタする個々の値をIEEE T 浮動小数点型(倍精度,8バイト長)で表示します。
(VAXのみ)モニタする個々の値をF浮動小数点型(4バイト長)で表示します。
MONITORコマンドは次のことを行います。
ユーザがモニタしている変数または記憶位置の値が変更されたかどうかにかかわらず, プログラムはデバッガから制御が戻ると,モニタ・ビューを更新します。 対称的に,ウォッチポイントはウォッチされている変数の値が変化すると実行を停止します。
モニタ・ビューとMONITORコマンドについての詳しい説明は,『デバッガ説明書』を参照してください。
関連コマンド
DBG> MONITOR COUNTこのコマンドはデバッガのDECwindows Motifインタフェースのモニタ・ビューに変数COUNT の名前と現在の値を表示します。プログラムからデバッガに制御が戻ると, 値は更新されます。
画面ディスプレイを画面上で垂直または水平に移動します。
MOVE [display-name[, . . . ]]
ディスプレイを指定しないと,SELECTコマンドで設定した現在のスクロール・ ディスプレイが選択されます。
/SUFFIX修飾子は,ディスプレイ定義またはディスプレイ定義に関連したキー定義を指定する場合のコマンド・ プロシージャで主に使用されます。
process-identifier-typeには次のいずれかのキーワードを指定できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PR OCESSコマンドの実行で表示される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別子(PID ) が付きます。 |
/SUFFIXのあとにprocess-identifier-typeキーワードを指定しないと, プロンプトの接尾辞がディスプレイ名の接尾辞の省略時の値として使用されます。SET PROMPT/SUFFIX コマンドを参照してください。
ディスプレイをn行分だけ上に(nが正の値の場合) ,またはn行分だけ下に(nが負の値の場合)移動します。 nを省略すると,ディスプレイは1行上に移動されます。
指定された表示ごとに,MOVEコマンドはウィンドウ内のテキストの相対位置を維持したまま, 画面上の他の場所に同じ寸法のウィンドウを作成し, それにディスプレイをマップします。
MOVEコマンドはディスプレイ・ペーストボード上でのディスプレイの順番は変更しません。MOVE コマンドを実行すると,指定したディスプレイによって他のディスプレイが見えなくなったり, 見えるようになったりします。 また,指定したディスプレイが他のディスプレイによって部分的または全体的に見えなくなることもあります。 どのようになるかはディスプレイ相互間の順序によります。
ディスプレイは上には画面の上辺までしか移動できません。
MOVEコマンドに対応するキーパッド・キー定義のリストについては,ヘルプ・ トピックKeypad_Definitions_CIを参照してください。また,現在のキー定義を調べるにはSHOW KEY コマンドを使用してください。
関連コマンド
DBG> MOVE/LEFTこのコマンドは現在のスクロール・ディスプレイを左に1列移動します。
DBG> MOVE/UP:3/RIGHT:5 NEW_OUTこのコマンドはNEW_OUTディスプレイを上に3行,右に5列移動します。
実行のために,DECthreadsデバッガにコマンドを渡します。
PTHREAD command
PTHREAD HELP
と入力すると,DECthreadsデバッガ・コマンドのヘルプを参照することができます。
DECthreadsデバッガの使用方法の詳細については,『Guide to DECthreads』を参照してください。
関連コマンドには,次のものがあります。
DBG_1> PTHREAD HELP conditions [-afhwqrs] [-N <n>] [id]...: list condition variables exit: exit from DECthreads debugger help [topic]: display help information keys [-v] [-N <n>] [id]...: list keys mutexes [-afhilqrs] [-N <n>] [id]...: list mutexes quit: exit from DECthreads debugger show [-csuv]: show stuff squeue [-c <n>] [-fhq] [-t <t>] [a]: format queue stacks [-fs] [sp]...: list stacks system: show system information threads [-1] [-N <n>] [-abcdfhklmnor] [-s <v>] [-tz] [id]...: list threads tset [-chna] [-s <v>] <id>: set state of thread versions: display versions write <st>: write a string All keywords may be abbreviated: if the abbreviation is ambiguous, the first match will be used. For more help, type 'help <topic>'. DBG_1>このコマンドでは,DECthreadsデバッガのヘルプ・ファイルが表示された後,OpenVMS デバッガに制御が戻っています。DECthreadsデバッガのヘルプ・ トピックについての情報を表示するには,
PTHREAD HELP
topic
と入力します。EXITと同様にデバッグ・セッションを終了するか,またはマルチプロセス・ プログラムの1つまたは複数のプロセスを終了しますが,アプリケーション宣言終了ハンドラは実行不可能にします。 コマンド・プロシージャまたはDO 句の中で使用し,プロセスを全く指定しないと,その時点でそのコマンド・ プロシージャまたはDO句が終了します。
QUIT [process-spec[, . . . ]]
現在デバッガの制御下にあるプロセスを指定します。次のいずれかの形式で指定します。
[%PROCESS_NAME] proc-name | スペースや小文字を全く含まないプロセス名。プロセス名にはワイルドカード文字のアスタリスク(*) を含むこともできます。 |
[%PROCESS_NAME] "proc-name" | スペースや小文字を含むプロセス名。二重引用符(")の代わりに一重引用符(') を使用することもできます。 |
%PROCESS_PID proc-id | プロセス識別子(PID ,16進数)。 |
%PROCESS_NUMBER proc-number (または%PROC proc-number) | デバッガの制御下に入ったときにプロセスに割り当てられた番号。 プロセス番号はSHOW PROCESS コマンドの実行で表示されます。 |
proc-group-name | DEFINE/PROCESS_ GROUPコマンドで定義された,プロセスのグループを表すシンボル。 再帰的なシンボル定義を指定してはなりません。 |
%NEXT_PROCESS | デバッガの循環プロセス・ リスト内の可視プロセスの次のプロセス。 |
%PREVIOUS_PROCESS | デバッガの循環プロセス・ リスト内の可視プロセスの前のプロセス。 |
%VISIBLE_PROCESS | シンボル,レジスタ値,ルーチン呼び出し, ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタック, レジスタ・セット,およびイメージを持つプロセス。 |
すべてのプロセスを指定するためにワイルドカード文字のアスタリスク(*) を使用することもできます。
デバッグ・セッションを終了するには,パラメータを全く指定しないでデバッガ・ プロンプトに対しQUITコマンドを入力します。この結果,デバッグ・ セッションが順序正しく終了されます。つまり,デバッガの終了ハンドラが実行され( ログ・ファイルをクローズし,画面とキーパッドの状態を復元するなど) ,制御がDCLレベルに戻ります。そのあとはDCLコマンドのDEBUG やCONTINUEを入力してもプログラムのデバッグを続けることはできません( デバッガを再起動する必要があります)。
デバッガがコマンド・プロシージャの中で(パラメータを全く指定しないで) QUIT コマンドを実行すると,制御はそのコマンド・プロシージャを起動したコマンド・ ストリームに戻ります。コマンド・ストリームは,端末, 外側(当該コマンド・プロシージャを含んでいる側)のコマンド・プロシージャ, コマンドまたは画面ディスプレイ定義でのDO句とすることができます。 たとえば,コマンド・プロシージャがDO句の中から起動された場合には, 制御はそのDO句に戻り,そこでデバッガはコマンド・シーケンスの中にあれば次のコマンドを実行します。
デバッガはDO句の中で(パラメータを全く指定しないで) QUITコマンドを実行する場合, その句にある残りのコマンドは無視し,プロンプトを表示します。
マルチプロセス・プログラムをデバッグするためにマルチプロセス・デバッグ構成を使用している場合( 論理名DBG$PROCESSの値がMULTIPROCESSの場合) ,QUITコマンドを使用すればデバッグ・セッションを終了せずに,指定したプロセスを終了できます。 プロンプトに対してQUITコマンドを入力するか, それともコマンド・プロシージャまたはDO句の中でQUITコマンドを使用するかにかかわらず, 同じ方法と動作が適用されます。
1つまたは複数のプロセスを終了するには,それらのプロセスをパラメータとして指定してQUIT コマンドを入力します。この結果,指定されたプロセスのイメージが順序正しく終了されますが, それらのイメージに対応するアプリケーション宣言終了ハンドラは実行されません。 その後は,指定したプロセスはSHOW PROCESS/ALL コマンドを実行しても表示されなくなります。
EXITコマンドとは対照的に,QUITコマンドを実行しても,プロセスの実行は開始されません。
関連コマンド
DBG> QUIT $このコマンドは,デバッグ・セッションを終了し,DCLレベルに戻ります。
JONES_1> QUIT %NEXT_PROCESS, %PROCESS_NAME JONES_3, %PROC 5 JONES_1>このコマンドを実行すると,マルチプロセス・プログラムの3つのプロセスが順序正しく終了します。 つまり,プロセス・リスト内の可視プロセスの次のプロセス, プロセスJONES_3,プロセス5が終了します。指定されたプロセスが終了したあと, 制御はデバッガに戻ります。
Alphaシステムの場合(OpenVMS Alphaシステム・コード・デバッガをAlpha オペレーティング・システム・コードのデバッグに使用している場合), Alphaオペレーティング・システム・コードを実行しているターゲット・ マシンを再ブートし,システム・プログラムを実行(再実行)します。
つまり,OpenVMS Alphaシステム・コード・デバッガ環境では,REBOOT コマンドはRUNコマンドやRERUNコマンドと同じ働きをします。OpenVMS Alphaシステム・コード・デバッガは,OpenVMSデバッガから起動するカーネル・ デバッガです。
このコマンドを実行する前に,『Writing OpenVMS Alpha Device Drivers in C 』の指示を完了していなければなりません。 これらの指示には,Alphaデバイス・ ドライバの作成,OpenVMS Alphaシステム・コード・デバッガを起動するコマンドの設定, デバッグを可能にするCONNECTコマンドの実行などがあります。
また,OpenVMSデバッガをDEBUG/KEEPコマンドで起動していなければなりません。
REBOOT
関連コマンド
DBG> REBOOTこのコマンドは,OpenVMS Alphaオペレーティング・システムをデバッグする予定のターゲット・ マシンを再ブートし,プログラムを再実行します。
指定された回数一連のコマンドを実行します。
REPEAT language-expression DO (command[; . . . ])
関連コマンド
DBG> REPEAT 10 DO (EXAMINE Y; STEP)このコマンド行は2つのコマンドからなるシーケンス(EXAMINE YのあとSTEP) を10回実行するループを設定します。
現在デバッガの制御下にあるプログラムを再実行します。
RERUN
RERUNコマンドはデバッグしていたイメージを終了したあと,デバッガの制御下のイメージを再開します。 実行は,メイン・プログラム・ユニットが開始されると, デバッガのRUNコマンド,またはDCLコマンドのRUN/DEBUG を実行した場合と同じように一時停止されます。
RERUNコマンドは現在デバッガの制御下にあるイメージと同じバージョンを使用します。 デバッグ・セッションから同じプログラムの異なるバージョン, または別のプログラムをデバッグするには,RUNコマンドを使用します。
関連コマンド
DBG> RERUNこのコマンドは現在のプログラムを再実行します。省略時の状態では,デバッガはすべてのブレークポイント, トレースポイント,静的ウォッチポイントの現在の状態( 有効か無効か)を保存します。
DBG> RERUN/NOSAVEこのコマンドはブレークポイント,トレースポイント,ウォッチポイントの現在の状態を保存しないで現在のプログラムを再実行します。 これは, RUNコマンドを使用してイメージ名を指定することと同じです。
DBG> RERUN/ARGUMENTS="fee fii foo fum"このコマンドは,現在のプログラムを新しい引数で返します。
プログラムをデバッガの制御下に置きます。
RUN [program-image]
program-imageパラメータを指定する場合,この修飾子は指定できません。
SET COMMANDコマンドで作成されたDCLコマンド定義またはその他のコマンド定義は指定できません。
同じプログラムつまり,現在デバッガの制御下にあるプログラムの同じバージョンを再び実行するには,RERUN コマンドを使用します。RERUNコマンドを使用すれば, 任意のブレークポイント,トレースポイント,静的ウォッチポイントの現在の状態( 有効か無効か)を保存できます。
RUNコマンドまたはRERUNコマンドを使用して引数を渡す方法については, 『デバッガ説明書』を参照してください。
デバッガのRUNコマンドに関する次の制限事項に注意してください。
関連コマンド
DBG> RUN EIGHTQUEENS Language: C, Module: EIGHTQUEENSこのコマンドはEIGHTQUEENSプログラムをデバッガの制御下に置きます。
$ RUNPROG == "$ DISK3:[SMITH]MYPROG.EXE" $ DEBUG/KEEP . . . DBG> RUN/COMMAND="RUNPROG"/ARGUMENTS="X Y Z"この例の最初の行はMYPROG.EXEという名前のイメージを実行するために(DCL レベルで)コマンド・シンボルRUNPROGを作成します。2行目はデバッガを起動します。 次にデバッガのRUNコマンドはMYPROG.EXEイメージをデバッガの制御下に置きます。/COMMAND 修飾子は以前に作成したコマンド・ シンボル(この場合はRUNPROG)を指定し,/ARGUMENTS修飾子は引数X Y Zをイメージに引き渡します。
DBG> RUN/ARGUMENTS="X Y Z" MYPROGこのコマンドは,プログラムMYPROG.EXEをデバッガの制御下に置いて,引数X Y Z を引き渡します。
これまでの画面ディスプレイの内容を新しいディスプレイでも保持します。
SAVE old-display AS new-display [, . . . ]
/SUFFIX修飾子は,ディスプレイ定義またはディスプレイ定義に関連したキー定義を指定する場合のコマンド・ プロシージャで主に使用されます。
process-identifier-typeには,次のいずれかのキーワードを指定できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PROCESSコマンドの実行で表示される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別子(PID )が付きます。 |
/SUFFIXのあとにprocess-identifier-typeキーワードを指定しないと, プロンプトの接尾辞がディスプレイ名の接尾辞の省略時の値として使用されます。SET PROMPT/SUFFIX コマンドを参照してください。
SAVEコマンドを使用すると,ディスプレイのメモリ・バッファ(DISPLAYコマンドの/SIZE 修飾子を指定することによって決定されます)に現在格納されている行だけが保存されます。 ただし,ソース・ディスプレイまたは機械語命令ディスプレイを保存した場合は, そのモジュールに関連したソース行は保存しなかったものも, またそのルーチンに関連した命令は保存しなかったものも, 保存したディスプレイをスクロールすることにより表示できます。
PROMPTディスプレイは保存できません。
関連コマンド
DBG> SAVE REG AS OLDREGこのコマンドは,REGというディスプレイの内容を,新規作成したディスプレイOLDREG に保存します。
画面ディスプレイをスクロールして,ディスプレイ・ウィンドウにテキストの他の部分を表示します。
SCROLL [display-name]
ディスプレイを指定しないと,SELECTコマンドで設定した現在のスクロール・ ディスプレイが選択されます。
/SUFFIX修飾子は,ディスプレイ定義またはディスプレイ定義に関連したキー定義を指定する場合のコマンド・ プロシージャで主に使用されます。
process-identifier-typeには次のいずれかのキーワードを指定できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PROCESSコマンドの実行で表示される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別子(PID) が付きます。 |
/SUFFIXのあとにprocess-identifier-typeキーワードを指定しないと, プロセス接尾辞がディスプレイ名の接尾辞の省略時の値として使用されます。SET PROMPT/SUFFIX コマンドを参照してください。
SCROLLコマンド(現在のスクロール・ディスプレイ)のディスプレイを選択するときは,SELECT/SCROLL コマンドを使用します。
SCROLLコマンドに関連したキー定義については,ヘルプ・トピックKeypad_Definitions_CI を参照してください。また,現在のキー定義を調べるにはSHOW KEY コマンドを使用してください。
関連コマンドSELECT.
DBG> SCROLL/LEFTこのコマンドは,現在のスクロール・ディスプレイを8欄だけ左へスクロールします。
DBG> SCROLL/UP:4 ALPHAこのコマンドはスクロール・ディスプレイALPHAの4行上へスクロールします。
指定した文字列をソース・コードから検索し,その文字列を含んでいるソース行を表示します。
SEARCH [range] [string]
mod-name | 指定したモジュール内の行0 からモジュールの最後までの間で検索します。 |
mod-name\line-num | 指定されたモジュール内の指定された行番号からモジュールの最後までの間で検索します。 |
mod-name\line-num:line- num | 指定されたモジュール内のコロンの左で指定した行番号からコロンの右で指定した行番号までの間で検索します。 |
line-num | 現在の有効範囲を使用してモジュールを決定し,そのモジュール内の指定された行番号からモジュールの最後までの間で検索します。 現在の有効範囲は, 前のSET SCOPEコマンドで設定されています。SET SCOPEコマンドを指定しなかった場合はPC 有効範囲です。SET SCOPEコマンドで有効範囲検索リストを指定すると, デバッガは最初に指定された有効範囲に関連したモジュールだけを検索します。 |
line- num:line-num | 現在の有効範囲を使用してモジュールを決定し, そのモジュール内のコロンの左の行番号からコロンの右の行番号までの間で検索します。 現在の有効範囲は,前のSET SCOPEコマンドで設定されています。SET SCOPE コマンドを指定しなかった場合はPC 有効範囲です。SET SCOPE コマンドで有効範囲検索リストを指定すると,デバッガは最初に指定された有効範囲に関連したモジュールだけを検索します。 |
null (入力なし) | 最後にソース行が表示された( たとえば,コマンドTYPE,EXAMINE /SOURCE, またはSEARCHを実行した結果)モジュールの中のその最後に表示された行の直後からそのモジュールの最後までの間で検索します。 |
次の場合は,文字列を二重引用符(")または一重引用符(')で囲まなければなりません。
文字列を二重引用符で囲む場合,文字列自体が二重引用符を含んでいればそれを示すために2 つの二重引用符("")を並べて使用します。一重引用符で囲む場合は,2 つの一重引用符('')を並べて使用して,文字列内の一重引用符であることを示します。
SEARCHコマンドでモジュール名を指定したら,そのモジュールは設定されていなければなりません。 特定のモジュールが設定されているかどうか確認するには,SHOW MODULE コマンドを使用します。設定されていなければSET MODULE コマンドを使用します。
SEARCHコマンドの修飾子は,デバッガが(1)その文字列のすべての出現を検索する(/ALL) かまたは次に出現するものを検索する(/NEXT)かを決定し,(2) 出現文字列をすべて(/STRING)表示するか,現在の言語で識別子を構成する文字によってどちら側にもつながっていない文字列だけ(/IDENTIFIER) を表示するかを決定します。
修飾子が同じSEARCHコマンドを複数個入力する場合,まず,SET SEARCHコマンドを使用して, 新しい省略時の修飾子を設定します。たとえば,SET SEARCH ALLと指定すると,SEARCHコマンドはSEARCH/ALLと同じように動作します。 この結果,SEARCHコマンドにこの修飾子を使用しないですみます。 またSEARCHコマンドで省略時の設定とは異なる修飾子を指定すれば, そのSEARCHコマンドの実行中は,現在の省略時の修飾子を上書きできます。
関連コマンド
DBG> SEARCH/STRING/ALL 40:50 D module COBOLTEST 40: 02 D2N COMP-2 VALUE -234560000000. 41: 02 D COMP-2 VALUE 222222.33. 42: 02 DN COMP-2 VALUE -222222.333333. 47: 02 DR0 COMP-2 VALUE 0.1. 48: 02 DR5 COMP-2 VALUE 0.000001. 49: 02 DR10 COMP-2 VALUE 0.00000000001. 50: 02 DR15 COMP-2 VALUE 0.0000000000000001. DBG>このコマンドは,現在の有効範囲にあるモジュールCOBOLTESTの行40〜50 で,文字Dをすべて検索します。
DBG> SEARCH/IDENTIFIER/ALL 40:50 D module COBOLTEST 41: 02 D COMP-2 VALUE 222222.33. DBG>このコマンドは,COBOLTESTモジュールの行40〜50で文字Dをすべて検索します。 デバッガは,現在の言語で識別子の一部を構成する文字によって文字D( 検索文字列)のどちらの側にもつなっがていない行だけを表示します。
DBG> SEARCH/NEXT 40:50 D module COBOLTEST 40: 02 D2N COMP-2 VALUE -234560000000. DBG>このコマンドは,COBOLTESTモジュールの行40〜50の間で次の文字Dを検索します。
DBG> SEARCH/NEXT module COBOLTEST 41: 02 D COMP-2 VALUE 222222.33. DBG>このコマンドは,次の文字Dを検索します。Dが最後に入力したものであり, ほかに検索文字列を指定していないため,デバッガはこのDを検索文字列であるとみなします。
DBG> SEARCH 43 D module COBOLTEST 47: 02 DR0 COMP-2 VALUE 0.1. DBG>このコマンドは,行43から,次の省略時の設定文字Dを検索します。
現在のエラー・ディスプレイ,入力ディスプレイ,機械語命令ディスプレイ, 出力ディスプレイ,プログラム・ディスプレイ,プロンプト・ディスプレイ, スクロール・ディスプレイ,またはソース・ディスプレイを画面ディスプレイとして選択します。
SELECT [display-name]
このパラメータを省略し,修飾子を指定しないと,現在のスクロール・ディスプレイの" 選択を解除する"ことになります。ディスプレイのスクロール属性がなくなります。 このパラメータを省略したのに修飾子/INPUT, /SOURCEなどを指定すると,その属性を持つ現在のディスプレイの選択が解除されます。 修飾子の説明を参照してください。
ディスプレイを指定しないと,現在の入力ディスプレイが選択解除され, デバッガ入力はどのディスプレイにもエコーバックされません。デバッガ入力はPROMPT ディスプレイにだけ表示されます。省略時には,どのディスプレイも入力属性を持ちません。
ディスプレイを指定しないと,現在の機械語命令ディスプレイが選択解除され, どのディスプレイも命令属性を持ちません。
省略時には,MACRO-32 MACRO-32を除くどの言語にも命令属性を持つディスプレイはありません。 言語をMACRO-32 MACRO-32に設定すると,INSTディスプレイは省略時に命令属性を持ちます。
ディスプレイを指定しないと,PROMPTディスプレイが現在の出力ディスプレイとして選択されます。 省略時には,OUTディスプレイが出力属性を持ちます。
ディスプレイを指定しないと,現在のプログラム・ディスプレイは選択解除され, プログラムの入出力は指定されたディスプレイには送られなくなります。
省略時には,PROMPTディスプレイがプログラム属性を持ちます。ただし, ワークステーションでは,プログラム属性が選択解除されます。
ディスプレイを指定しないと,現在のスクロール・ディスプレイは選択解除され, どのディスプレイもスクロール属性を持たなくなります。
省略時には,MACRO-32 MACRO-32を除くどの言語の場合にも,SRCディスプレイがスクロール属性を持ちます。 言語がMACRO-32 MACRO-32に設定されると,INST ディスプレイが省略時設定としてスクロール属性を持ちます。
ディスプレイを指定しないと,現在のソース・ディスプレイが選択解除され, どのディスプレイもソース属性を持たないことになります。
省略時には,MACRO-32 MACRO-32を除くどの言語の場合にも,SRCディスプレイがソース属性を持ちます。 言語がMACRO-32 MACRO-32に設定されると, どのディスプレイも省略時設定としては,ソース属性を持ちません。
/SUFFIX修飾子は,ディスプレイ定義またはディスプレイ定義に関連したキー定義を指定する場合のコマンド・ プロシージャで主に使用されます。
process-identifier-typeには次のいずれかのキーワードを指定できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PROCESSコマンドの実行で表示される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別番号(PID) が付きます。 |
/SUFFIXのあとにprocess-identifier-typeキーワードを指定しないと, プロンプトの接尾辞がディスプレイ名の接尾辞の省略時の値として使用されます。SET PROMPT/SUFFIX コマンドを参照してください。
SELECTコマンドに1つまたは複数の修飾子(/ERROR,/SOURCEなど)を指定すると,1 つのディスプレイに相当する属性を1つまたは複数個割り当てることができます。 修飾子を指定しないと,省略時の値として/SCROLLが指定されているものとみなされます。
SELECTコマンドにディスプレイ名を指定しないと,修飾子が示している属性割り当ては取り消されます( 選択解除されます)。表示属性を再割り当てするには, もう一度SELEC Tコマンドを実行しなければなりません。詳しい説明は, 各修飾子を参照してください。
SELECTコマンドに関連したキー定義は,ヘルプ・トピックKeypad_ Definitions_CIを参照してください。また,現在のキー定義を調べるには,SHOW KEY コマンドを使用してください。
関連コマンド
DBG> SELECT/SOURCE/SCROLL SRC2このコマンドは,SRC2ディスプレイを現在のソース・ディスプレイおよびスクロール・ ディスプレイとして選択します。
DBG> SELECT/INPUT/ERROR OUTこのコマンドは,OUTディスプレイを現在の入力ディスプレイおよびエラー・ ディスプレイとして選択します。この結果,デバッガ入力,デバッガ出力(OUT を現在の出力ディスプレイとみなして),デバッガ診断メッセージがOUT ディスプレイ内に正しい順に記録されます。
DBG> SELECT/SOURCEこのコマンドは,現在選択されているソース・ディスプレイを選択解除( 現在選択されているソース・ディスプレイからソース属性を削除)します。TYPE コマンドまたはEXAMINE /SOURCEコマンドの出力は,現在選択されている出力ディスプレイに送られます。
デバッガの強制終了機能を他のCtrlキー・シーケンスに割り当てます。省略時には,Ctrl/C が強制終了機能になります。
SET ABORT_KEY = CTRL_character
Ctrlキー・シーケンスには定義済みの機能がすでに割り当てられている場合が多く,SET ABORT_KEY コマンドを実行すると,このようなキー定義が上書きされます『 OpenVMSユーザーズ・マニュアル』を参照してください) 。オペレーティング・システムのCtrlキー文字で使用されていないのは,G ,K,N,およびPです。
SHOW ABORT_KEYコマンドは,現在有効な強制終了機能としてCtrlキーシーケンスを表示します。
デバッグ・セッションではCtrl/Yは使用できません。代わりに,Ctrl/Cを使用するか,SET ABORT_KEY コマンドで設定した同等のCtrlキー・シーケンスを使用してください。
関連コマンド
DBG> SHOW ABORT_KEY Abort Command Key is CTRL_C DBG> GO . . . <Ctrl/C> DBG> EXAMINE/BYTE 1000:101000 !should have typed 1000:1010 1000: 0 1004: 0 1008: 0 1012: 0 1016: 0 <Ctrl/C> %DEBUG-W-ABORTED, command aborted by user request DBG> SET ABORT_KEY = CTRL_P DBG> GO . . . <Ctrl/P> DBG> EXAMINE/BYTE 1000:101000 !should have typed 1000:1010 1000: 0 1004: 0 1008: 0 1012: 0 1016: 0 <Ctrl/P> %DEBUG-W-ABORTED, command aborted by user request DBG>この例は,次のことを示しています。
デバッガがコマンド・プロシージャの検索に使用する省略時のファイル指定を設定します。
SET ATSIGN file-spec
検索リストに変換する論理名を指定できます。この場合,デバッガは,目的のコマンド・ プロシージャが見つかるまで,検索リストに並んでいる順にファイル指定を処理します。
関連コマンド
DBG> SET ATSIGN USER:[JONES.DEBUG].DBG DBG> @TESTこの例では,@TESTコマンドを実行するとデバッガがUSER:[JONES.DEBUG] 内で TEST.DBGファイルを探します。
特定のクラスの命令または指定されたイベントの発生時に,アドレス式で示された記憶位置にブレークポイントを設定します。
SET BREAK [address-expression[, . . . ]] [WHEN(conditional-expression)] [DO(command[; . . . ])]
ワイルドカード文字のアスタリスク(*)は使用できません。また次の修飾子では, アドレス式を指定できません。
/MODIFY修飾子と/RETURN修飾子は,特定の種類のアドレス式に指定できます。
メモリ・アドレスを指定したり,値がシンボリック記憶位置でないアドレス式を指定する場合は, これにより指定されたメモリ・バイトで命令が実際に始まっているかを (EXAMINE コマンドを使用して)チェックしてください。 命令がこのバイトで始まっていないと,そのバイトを持つ命令を実行したときに実行時エラーが発生します。 値がシンボリック記憶位置でないアドレス式を指定してブレークポイントを設定しても, デバッガは指定された記憶位置が命令の開始位置を示しているかどうかをチェックしません。
たとえば,VAXシステムの場合は,CALLSルーチンとCALLGルーチンは,エントリ・ マスクで始まります。
イベント機能は,AdaルーチンまたはSCANルーチンを呼び出すプログラムまたはDECthreads サービスを使用するプログラムで使用できます。 現在のイベント機能および関連したイベント名を表示するには,SHOW EVENT_FACILITY コマンドを使用します。
プログラムが例外を生成すると,SET BREAK/EXCEPTIONコマンドの結果として, デバッガはプログラムの実行を中断して例外を報告し,そのプロンプトを表示します。 例外ブレークポイントから実行を再開した場合,次のいずれかの動作が実行されます。
Alpha上では,ハンドラ内でのデバッガの実行を一時停止するためのSTEP コマンドまたはGOコマンドを入力する前に,例外ハンドラにブレークポイントを明示的に設定しなければなりません。
Alphaプロセッサでは,例外が発生した命令実行の直後に, 例外を(プログラムまたはデバッガに)通知できないことがあります。 したがって,デバッガは,実行の結果実際に例外を生成した命令よりあとの命令で実行を中断することがあります。
Alphaシステムでは,ユーザ・プログラムが独自のハンドラを定義しているフレームで, 多くのRTLがジャケットRTLハンドラを設定します。このRTL ジャケットは,ユーザが定義したハンドラを実際に呼び出す前に,何らかの設定と引数の操作を実行します。 例外を処理する場合,デバッガは, ジャケットRTLハンドラが呼び出しスタック上のアドレスであるため, そこにブレークポイントを設定します。デバッガがジャケットRTLハンドラでプログラムの実行を中止した場合には, 通常,STEP/CALLコマンドとSTEP/INTO コマンドを実行して,ユーザ定義ハンドラに到達することができます。 場合によっては,STEP/CALLコマンドとSTEP/INTOコマンドをさらに入力しなければならないことがあります。 フレーム・ベースのハンドラの詳細については, 『OpenVMS Calling Standard』を参照してください。
ジャケットRTLハンドラが,ALPHA LIBOTSなど,インストールされている共用イメージの一部である場合には, デバッガはそこにブレークポイントを設定できません。 この場合には,RTLを論理名として定義して,RTLをプライベート・ イメージとして有効にしてください。次の例を参照してください。
$DEFINE LIBOTS SYS$SHARE:LIBOTS.EXE;
最後のセミコロン(;)は必ず指定してください。
VAXプロセッサの場合に限り,命令コードを1つまたは複数個選択して指定できます。 これによって,リスト内で指定した命令コードが実行されるたびに, デバッガがブレークします。
ベクタ命令を指定するとき(VAXのみ),命令修飾子(/UNALIGNED_DATA, /VECTOR_INSTRUCTION,/MODIFY,/0,または/1)と命令ニーモニックの両方をいれることはできません。
/INTO修飾子と/OVER修飾子も参照してください。
これらの修飾子といっしょに使用すると,/INTOは,呼び出されたルーチン内( 実行が現在中断されているルーチン内だけでなく)の指定された地点でデバッガがブレークします。/INTO 修飾子は省略時の設定であり,/OVER の反対です。
/INTOを使用すると,/[NO]JSB,/[NO]SHARE,および/[NO]SYSTEMでブレーク・ アクションをさらに修飾できます。
/JSB修飾子は,DIBOL以外のすべての言語における省略時の値です。デバッガは,JSB 命令またはCALL命令によって呼び出されるルーチン内でブレークします。/NOJSB 修飾子(DIBOLのときの省略時の設定)は,JSB命令によって呼び出されるルーチン内でブレークポイントを設定しないことを指定します。DIBOL の場合,アプリケーションで宣言したルーチンはCALL命令によって呼び出され,DIBOL 実行時ライブラリ・ルーチンがJSB命令によって呼び出されます。
SET BREAK/MODIFYコマンドは,SET WATCHコマンドと全く同じように動作し, 同じ制限事項が適用されます。
アドレス式に絶対アドレスを指定すると,デバッガがアドレスを特定のデータ・ オブジェクトに関連づけることができない場合があります。この場合, デバッガは省略時の長さとして4バイトを使用します。ただし,この長さは, 入力をWORD (SET TYPE WORDで省略時の長さを2バイトに変更する) かBYTE (SET TYPE BYTEで省略時の長さを1バイトに変更する)に設定すれば変更できます。SET TYPE LONGWORD を指定すると,省略時の長さは4バイトに戻ります。
これらの修飾子といっしょに/OVERを使用すると,(呼び出されたルーチン内ではなく) 現在実行を中断しているルーチン内だけの指定された地点でデバッガはブレークします。/OVER 修飾子は,/INTO (省略時の設定)の反対です。
VAXプロセッサの場合,この修飾子は,CALLS命令またはCALLG 命令で呼び出したルーチンにだけ指定できます。JSBルーチンでは使用できません。Alpha プロセッサの場合, この修飾子は,どのルーチンにも指定できます。
address-expressionパラメータは,ルーチン内の命令アドレスです。 単なるルーチン名の場合もあります。この場合は,ルーチンの開始アドレスを指定します。 ただし,ルーチン内の別の記憶位置を指定することもできます。 こうすると,特定のプログラム部分を実行したあとに行われる戻りだけを表示できます。
SET BREAK/RETURNコマンドでSET BREAKと同じアドレス式を指定すると, 前回のSET BREAKは取り消されます。
/SHARE修飾子を使用すると,他のルーチンだけでなく共用可能イメージ・ ルーチン内でもデバッガをブレークできます。/NOSHARE修飾子は,共用可能イメージ内でブレークポイントを設定しないことを指定します。
maskが指定されていない場合や,mask = FFFFFFFFFFFFFFFFの場合には,オペレーティング・システムが任意の命令をエミュレートしたときに, デバッガはプログラムの実行を停止します。
/SYSTEM修飾子を指定すると,他のルーチンだけでなくシステム・ルーチン(P 1 空間)内でもデバッガがブレークできます。/NOSYSTEM修飾子を指定すると, システム・ルーチン内ではブレークポイントが設定されません。
プログラムの特定の記憶位置にブレークポイントを設定するには,SET BREAKコマンドでアドレス式を指定します。連続したソース行,命令クラス, またはイベントにブレークポイントを設定するには,SET BREAKコマンドで修飾子を指定します。 通常はアドレス式か修飾子のどちらかを指定するだけでよく, 両方を指定する必要はありません。ただし,/EVENT と/RETURNの場合は両方指定しなければなりません。
/LINE修飾子は各ソース・コード行ごとにブレークポイントを設定します。
次の修飾子は命令クラスにブレークポイントを設定します。これらの修飾子と/LINE をいっしょに使用すると,デバッガはプログラムの実行中に各命令をトレースするので, 実行速度が著しく遅くなります。
次の修飾子は,イベント・クラスにブレークポイントを設定します。
次の修飾子は,ルーチンを呼び出したときに何が起こるかを決定します。
次の修飾子は,ブレークポイントに達したときにどんな出力を表示するかを決定します。
次の修飾子は,ブレークポイントのタイミングと期間を決定します。
プログラム記憶位置の変更(通常は変数値の変更)をモニタするには, /MODIFY 修飾子を使用します。
現在トレースポイントとして使用されている記憶位置をブレークポイントとして設定すると, トレースポイントは取り消されます。また,逆も同様です。
OpenVMS Alphaシステムの場合,SET BREAK/UNALIGNED_DATAコマンドは$START_ALIGN_FAULT_REPORT システム・サービス・ルーチンを呼び出します。 デバッグしているプログラムに,同じ$START_ALIGN_FAULT_REPORT ルーチンへの呼び出しがある場合は,このコマンドを実行しないでください。 プログラムを呼び出す前にこのコマンドを実行すると,この呼び出しは異常終了します。 このコマンドを実行する前にプログラムが呼び出されると, 境界に合っていないデータに対するブレークは設定されません。
ブレークポイントには,ユーザが定義するものと定義済みのものとがあります。 ユーザ定義のブレークポイントは,ユーザがSET BREAKコマンドで明示的に設定したブレークポイントです。 定義済みのブレークポイントは, デバッグするプログラムの種類(Adaあるいはマルチプロセスなど)によって異なりますが, デバッガの起動時に自動的に設定されます。現在設定されているすべてのブレークポイントを表示するには,SHOW BREAK コマンドを使用します。 定義済みのブレークポイントは定義済みのものとして表示されます。
ユーザ定義ブレークポイントと定義済みブレークポイントは,それぞれ別々に設定したり取り消したりします。 たとえば,1つの記憶位置またはイベントに, ユーザ定義ブレークポイントと定義済みブレークポイントの両方を設定することができます。 ユーザ定義ブレークポイントを取り消しても, 定義済みブレークポイントは影響を受けません。逆も同様です。
関連コマンド
DBG> SET BREAK SWAP\%LINE 12このコマンドの場合,SWAPモジュールの行12でデバッガがブレークします。
DBG> SET BREAK/AFTER:3 SUB2このコマンドの場合,SUB2 (ルーチン)が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修飾子を指定したので, ブレークポイントではソース・コードが表示されません。
DBG> SET BREAK ROUT3 WHEN (X > 4) DO (EXAMINE Y)このコマンドの場合,Xが4より大きい場合にROUT3ルーチンでデバッガがブレークします。 ブレークポイントでは,EXAMINE Yコマンドが実行されます。WHEN 句の条件式の構文は,言語によって異なります。
DBG> SET BREAK/TEMPORARY 1440 DBG> SHOW BREAK breakpoint at 1440 [temporary] DBG>このコマンドの場合,メモリ・アドレス1440にブレークポイントが一時的に設定されます。 検出されるとこのブレークポイントは無効になります。
DBG> SET BREAK/LINEこのコマンドの場合,プログラムの実行中にソース行を検出するたびにその行の先頭でデバッガがブレークします。
DBG> SET BREAK/LINE WHEN (X .NE. 0) DBG> SET BREAK/INSTRUCTION WHEN (X .NE. 0)この2つのコマンドの場合,Xが0でないときにデバッガがブレークします。 最初のコマンドは,実行中に検出されたソース行の先頭で条件を満足しているかどうか調べます。2 つめのコマンドは,各命令で,条件を満足しているかどうかを調べます。WHEN 句の条件式の構文は,言語によって異なります。
DBG> SET BREAK/INSTRUCTION=ADDL3(VAXのみ)このコマンドの場合,ADDL3命令が実行される直前にデバッガがブレークします。
DBG> SET BREAK/LINE/INTO/NOSHARE/NOSYSTEMこのコマンドの場合,各ソース行の先頭でデバッガがブレークします。この行には, 呼び出されたルーチン(/INTO)内の行を含み,共用可能イメージ・ ルーチン(/NOSHARE)内とシステム・ルーチン(/NOSYSTEM)内の行は含まれません。
DBG> SET BREAK/RETURN ROUT4このコマンドの場合,ROUT4ルーチンの復帰命令を実行する直前にデバッガがブレークします。
DBG> SET BREAK/RETURN %LINE 14このコマンドの場合,行14を含んでいるルーチンの復帰命令を実行する直前に, デバッガがブレークします。このコマンド書式は,ルーチン内で現在実行が中断しており, そのルーチンの復帰命令でブレークポイントを設定したい場合に便利です。
DBG> SET BREAK/EXCEPTION DO (SET MODULE/CALLS; SHOW CALLS)このコマンドの場合,例外がシグナル通知されるたびにデバッガがブレークします。 このブレークポイントでは,SET MODULE/CALLSコマンドとSHOW CALLSコマンドが実行されます。
DBG> SET BREAK/EVENT=RUN RESERVE, %TASK 3このコマンドは2つのブレークポイントを設定します。それぞれRESERVEタスクとタスク3( タスクID=3)に関連しています。関連したタスクがRUN状態に移行するたびに, 各ブレークポイントが検出されます。
DBG_1> SET BREAK/ACTIVATINGこのコマンドの場合,マルチプロセス・プログラムのプロセスがデバッガの制御下に置かれるたびにデバッガがブレークします。
DEFINEコマンドの省略時の修飾子(/ADDRESS,/COMMAND,/PROCESS_ GROUP,または/VALUE)を設定します。
SET DEFINE define-default
ADDRESS | それ以降のDEFINEコマンドはDEFINE /ADDRESSとして扱われる。これは省略時の設定である。 |
COMMAND | それ以降のDEFINEコマンドはDEFINE/COMMAND として扱われる。 |
PROCESS_GROUP | それ以降のDEFINEコマンドはDEFINE/PROCESS_GROUP として扱われる。 |
VALUE | それ以降のDEFINEコマンドはDEFINE/VALUE として扱われる。 |
別の修飾子を指定すれば,1つのDEFINEコマンドの実行中に現在のDEFINE コマンドの省略時の設定を上書きできます。現在のDEFINEコマンドの省略時の設定を表示するには,SHOW DEFINE コマンドを使用します。
関連コマンド
DBG> SET DEFINE VALUESET DEFINE VALUEコマンドは,それ以降のDEFINEコマンドをDEFINE/VALUE として扱うことを指定します。
EDITコマンドによって起動するエディタを設定します。
SET EDITOR [command-line]
/CALLABLE_EDT,/CALLABLE_LSEDIT,または/CALLABLE_TPUを使用した場合は, コマンド行を指定する必要はありません。これらの修飾子を使用しない場合は,EDIT コマンドを入力したときにSET EDITORコマンド行で指定したエディタがサブプロセスとして作成されます。
コマンド行に/CALLABLE_LSEDITや/CALLABLE_TPUは指定できますが, /CALLA BLE_EDTは指定できません。
/START_POSITION修飾子は,エディタのカーソルの最初の位置に影響を及ぼします。 省略時の設定(/NOSTART_POSITION)では,エディタのカーソルがソース行1 の先頭に置かれます。デバッガのソース表示でどの行が中央にあるか, またEDITコマンドで行番号を指定するかどうかは関係ありません。/START_POSITION を指定すると,カーソルはEDITコマンドで番号で指定した行または現在のソース表示の中央にある行( 行番号を指定しない場合) に置かれます。
VAXプロセッサの場合,EDT,LSEDIT,またはDECTPU を使用すると,これらのエディタを効率よく起動できます。また,/CALLABLE_EDT ,/CALLABLE_LSEDIT,または/CALLABLE_TPUを指定すると, それぞれEDT,LSEDIT,またはDECTPUの呼び出し可能なバージョンをEDIT コマンドによって起動できます。LSEDITとDECTPUの場合は,呼び出し可能なエディタが実行するコマンド行も指定できます。
Alphaプロセッサの場合,/CALLABLE_EDTまたは/CALLABLE_TPU は使用できますが,/CALLABLE_LSEDITは使用できません。
関連コマンド
DBG> SET EDITOR '@MAIL$EDIT ""'このコマンドを指定しておくと,EDITコマンドを入力したときに,コマンド行'@MAIL$EDIT ""' を作成し,その結果MAILで使用するのと同じエディタが開始されます。
DBG> SET EDITOR/CALLABLE_TPUこのコマンドを指定しておくと,EDITコマンドを入力したときに,TPUの省略時のコマンド行で呼び出し可能なDECTPU を開始します。
DBG> SET EDITOR/CALLABLE_TPU TPU/SECTION=MYSECINI.TPU$SECTIONこのコマンドを指定しておくと,EDITコマンドを入力したときに,コマンド行TPU/SECTION=MYSECINI.TPU$SECTION で呼び出し可能なDECTPUを開始します。
DBG> SET EDITOR/CALLABLE_EDT/START_POSITIONこのコマンドを指定しておくと,EDITコマンドを入力したときに,呼び出し可能なEDT を省略時のコマンド行EDTで開始します。また,このコマンド行には/START_ POSITION 修飾子が付いていますから,編集はデバッガの現在のソース表示の中央にあるソース行から始まります。
現在のイベント機能を設定します。
イベント機能は,AdaルーチンかSCANルーチンを呼び出すプログラムまたはDECthreads サービスを使用するプログラムで使用できます。
SET EVENT_FACILITY facility-name
ADA | イベント機能をADAに設定すると,(SET,
CANCEL) BREAKコマンドと(SET,CANCEL) TRACEコマンドは,汎用の低レベルのタスク・
イベントだけでなくAda固有のイベントも認識できます(Ada
イベントは,タスク・イベントと例外イベントから構成されます)。
ただし,イベント機能をADAに設定できるのは,メイン・プログラムがAda で作成されている場合かプログラムがAdaルーチンを呼び出す場合だけです。 |
THREADS | イベント機能をTHREADS
に設定すると,(SET,CANCEL) BREAKコマンドと(SET,
CANCEL) TRACEコマンドは,汎用の低レベルのタスク・イベントだけでなくDECthreads
固有のイベントも認識できます。DECthreads
イベントはすべてタスク(スレッド)
・イベントです。
イベント機能をTHREADSに設定できるのは,共用可能イメージCMA$RTL が現在プログラム・プロセスの一部である場合(そのイメージがSHOW IMAGE表示に並んでいる場合)だけです。 |
SCAN | (VAXのみ)イベント機能をSCANに設定すると,(SET
,CANCEL)BREAKコマンドと(SET,CANCEL) TRACEコマンドがSCAN(
パターン照合)イベントを認識します。
イベント機能をSCANに設定できるのは,メイン・プログラムがSCANで作成されている場合か, プログラムがSCANルーチンを呼び出す場合だけです。 |
イベント機能にリンクされているプログラムを開始すると,デバッガはプログラムの種類に適した方法でイベント機能を自動的に設定します。 たとえば, メイン・プログラムがAda(またはSCAN)で作成されている場合,イベント機能はADA( またはSCAN)に設定されます。
SET EVENT_FACILITYコマンドを指定するとイベント機能を変更できるので, デバッグ・コンテキストを変更できます。これは,複数言語プログラムを使用していて, 現在設定されていないイベント機能に関連したルーチンをデバッグしたい場合に便利です。
VAXプロセッサでは,同じプログラムでAdaタスキング・ サービスとDECthreadsタスキング・ サービスの両方を使用することはできません。すなわち,イベント機能は,ADA からSCANに変換するか,DECthreadsからSCAN に変換するか,またはその逆に変換するしかできません。
現在のイベント機能に関連しているイベント名を表示するには,SHOW EVENT_FA CILITYコマンドを使用します。これらのイベント名は,(SET, CANCEL)BREAK/EVENT コマンドと(SET,CANCEL)TRACE/EVENTコマンドで指定できるキーワードです。
関連コマンド
DBG> SET EVENT_FACILITY THREADSこのコマンドは,THREADS (DECthreads)を現在のイベント機能として設定します。
1つまたは複数の共用可能イメージのシンボル情報をロードし,現在のイメージを設定します。
SET IMAGE [image-name[, . . . ]]
現在のイメージとは現在のデバッグ・コンテキストです。アクセスするのは現在のイメージ内のシンボルです。SET IMAGE コマンドで1つのイメージだけを指定すると, そのイメージが現在のイメージになります。複数のイメージを並べて指定すると, そのリストで最後のイメージが現在のイメージになります。/ALL を指定すると,現在のイメージは変化しません。
SET IMAGEコマンドでイメージを設定する前に,DCLコマンドのLINKに/DEBUG 修飾子または/TRACEBACK修飾子を指定してイメージをリンクしなければなりません。/NOTRACEBACK でリンクするとそのイメージのシンボル情報は使用できません。 また,SET IMAGEコマンドで指定することもできなくなります。
DEFINE/ADDRESSコマンドとDEFINE/VALUEコマンドで作成した定義は,それらを作成したコンテキストのイメージが現在のイメージである場合だけ使用できます。SET IMAGE コマンドを使用して新しく現在のイメージを設定すると, これらの定義は一時的に使用できなくなります。ただし, DEFINE/COMMANDコマンドまたはDEFINE/KEYコマンドで作成した定義はすべてのイメージで使用できます。
関連コマンド
DBG> SET IMAGE SHARE1 DBG> SET MODULE SUBR DBG> SET BREAK SUBRこのコマンド列は,共用可能イメージSHARE1のSUBRモジュール内のSUBRルーチンにブレークポイントを設定する方法を示しています。SET IMAGE コマンドはデバッグ・ コンテキストをSHARE1に設定します。SET MODULEコマンドはSUBR モジュールのシンボル・レコードを実行時シンボル・テーブル(RST) にロードします。SET BREAKコマンドはSUBRルーチン内にブレークポイントを設定します。
現在のキーの状態を設定します。
SET KEY
省略時の設定では,現在のキー状態はDEFAULT状態です。ファンクション・ キーを定義する場合,DEFINE/KEY/IF_STATEコマンドを使用してキー定義に特定の状態名を割り当てることができます。 キーを押したときにその状態が設定されていないと, その定義は処理されません。SET KEY/STATEコマンドを使用すれば,現在の状態を適切な状態に変更することができます。
状態を変更するキー(DEFINE/KEY/LOCK_STATE/SET_STATEで定義されたキー) を押しても,現在の状態を変更できます。
関連コマンド
DBG> SET KEY/STATE=PROG3このコマンドはキー状態をPROG3状態に変更します。これで,このキー状態に関連したキー定義を使用できるようになります。
現在の言語を設定します。
SET LANGUAGE language-name
VAXプロセッサでは,次のいずれかのキーワードを指定できます。
ADA | BASIC | BLISS | C |
C_PLUS_PLUS | COBOL | DIBOL | FORTRAN |
MACRO | PASCAL | PLI | RPG |
SCAN | UNKNOWN |
Alphaプロセッサでは,次のいずれかのキーワードを指定できます。
ADA | AMACRO | BASIC | BLISS |
C | C_PLUS_ PLUS | COBOL | FORTRAN |
MACRO | MACRO64 | PASCAL | PLI |
UNKNOWN |
現在の言語設定により,デバッガ・コマンド内で指定した名前,演算子, 式の解析方法と解釈方法が決まります。さらに,変数の型,配列,およびレコード構文の種類, 整数データの入力と表示の省略時の基数,大文字小文字の区別などの解析方法と解釈方法も決まります。 また,言語設定により, ユーザ・プログラムに関連したデータをデバッガがどのように形式化し表示するかも決まります。
データ入力と表示の省略時の基数はほとんどの言語の場合,10進数です。VAX プロセッサでは,例外はBLISSとMACRO- 32 MACRO-32です。これらの省略時の基数は16進数です。Alphaプロセッサでは, 例外はBLISSとMACRO-32とMACRO-64です。MACRO-32 とMACRO-64です。これらの省略時の基数は16進数です。
コンパイラ生成型を持っていないプログラム記憶位置の省略時の型はロングワード整数です。 これは,32ビットのアプリケーションをデバッグするのに適しています。64 ビットのアドレス空間を利用するアプリケーションをデバッグするには, 省略時の型をクォドワードに変更することをお薦めします。SET TYPE QUADWORD コマンンドを実行してください。
サポートされない言語でコーディングしたプログラムをデバッグするにはSET LANGUAGE UNKNOWN コマンドを使用します。サポートされない言語に対してデバッガの有用性を最大にするために,SET LANGUAGE UNKNOWN は,一部のサポート言語に固有なものを含め大量のデータ形式と演算子をデバッガが受け入れるようにします。
SET LANGUAGE UNKNOWNは,「最も穏やかな」規則を使用しているため,簡単で迅速な予備手段となります。
言語に固有な演算子と構造に関するデバッガ・サポートについての詳しい説明は, ヘルプ・トピックLanguage_Support を参照してください。
関連コマンド
DBG> SET LANGUAGE COBOLこのコマンドは現在の言語としてCOBOLを設定します。
DBG> SET LANGUAGE PASCALこのコマンドは現在の言語としてPascalを設定します。
SET OUTPUT LOGコマンドを入力したときに,デバッガがログを書き込むログ・ ファイルを指定します。
SET LOG file-spec
指定したバージョン番号を持つファイルがすでに存在していると,デバッガは, そのファイルの最後にデバッグ・セッションのログを書き込みます。
SET OUTPUT LOGコマンドだけを入力してSET LOGコマンドを入力しないと, 省略時の設定によってデバッガはSYS$DISK:[]DEBUG.LOGファイルに書き込みます。
あるログ・ファイルにデバッガが書き込んでいるときにSET LOGコマンドで別のログ・ ファイルを指定すると,デバッガはそれまで書き込んでいたファイルをクローズして,SET LOG コマンドで指定したファイルに書き込みを始めます。
関連コマンド
DBG> SET LOG CALC DBG> SET OUTPUT LOGこの例では,SET LOGコマンドがSYS$DISK:[]CALC.LOGをデバッグのログ・ ファイルとして指定します。SET OUTPUT LOGを指定すると,ユーザの入力とデバッガの出力はそのファイルに書き込まれます。
DBG> SET LOG [CODEPROJ]FEB29.TMP DBG> SET OUTPUT LOGこの例では,SET LOGコマンドが[CODEPROJ]FEB29.TMPをログ・ファイルとして指定します。SET OUTPUT LOG コマンドを指定すると,ユーザの入力とデバッガの出力はそのファイルに書き込まれます。
ソース行文字の左端位置と右端位置を指定します。この位置はソース行の表示が開始する位置と終了する位置です。
SET MARGINS rm lm:rm lm: :rm
SET MARGINSコマンドはソース・コードの表示を制御するのに便利です。 たとえば,大きくインデントされている場合や長い行を右マージンで自動改行する場合などに使用できます。 このような場合,左マージンを設定すればソース・ ディスプレイ内にインデント用のスペースが入らなくなります。 また右マージンの設定値を(省略時の値255から)減らして行を短くし, 自動改行されるのを防ぐことができます。
SET MARGINSコマンドは主に行(非画面)モードのときに便利です。行モードでは,SET MARGINS コマンドはコマンドTYPE,EXAMINE/SOURCE, SEARCH,STEPを実行した結果や,ブレークポイント,トレースポイント, ウォッチポイントが検出された場合のソース行の表示を制御します。
画面モードでは,SET MARGINSコマンドは定義済みディスプレイSRCなどのソース・ ディスプレイのソース行の表示には影響しません。TYPEコマンドやEXAMINE/SOURCE コマンドの出力はソース・ディスプレイに直接出力されるので,SET MARGINS コマンドはこれらの出力には影響しません。SET MARGINSコマンドは,出力またはDOディスプレイ内に示されるソース・コードの表示( たとえば,STEPコマンドを実行したあと)にだけ影響します。 ただし,PF1-PF3を押して画面モードにした場合,このようなソース・コードは表示されません。 このシーケンスはSET MODE SCREENコマンドだけでなくSET STEP NOSOURCE コマンドも実行して冗長なソース・ディスプレイを削除するからです。
省略時には,デバッガがソース行の文字位置1から表示を開始します。これは, ユーザ端末画面では文字位置9に相当します。画面の最初の8文字は行番号用に予約されており,SET MARGINS コマンドでは操作できません。
番号を1つだけ指定すると,デバッガは左マージンを1に,右マージンを指定された数に設定します。
2つの数をコロンで区切って指定すると,デバッガはコロンの左側の数を左マージンに, 右側の数を右マージンに設定します。
数を1つだけ指定してそのあとにコロンを入力すると,デバッガはその数を左マージンに設定し, 右マージンは変更しません。
コロンを入力してそのあとに1つの数を指定すると,デバッガはその数を右マージンに設定し, 左マージンは変更しません。
関連コマンド
DBG> SHOW MARGINS left margin: 1 , right margin: 255 DBG> TYPE 14 module FORARRAY 14: DIMENSION IARRAY(4:5,5), VECTOR(10), I3D(3,3,4) DBG>この例はソース・コード行の省略時のマージン設定を表示します(1と255) 。
DBG> SET MARGINS 39 DBG> SHOW MARGINS left margin: 1 , right margin: 39 DBG> TYPE 14 module FORARRAY 14: DIMENSION IARRAY(4:5,5), VECTOR DBG>この例は,右マージンの設定を255から39に変更するとソース・コード行の表示がどうなるかを示します。
DBG> SET MARGINS 10:45 DBG> SHOW MARGINS left margin: 10 , right margin: 45 DBG> TYPE 14 module FORARRAY 14: IMENSION IARRAY(4:5,5), VECTOR(10), DBG>この例は,左右両方のマージンを変更後のソース・コード行の表示を示します。
DBG> SET MARGINS :100 DBG> SHOW MARGINS left margin: 10 , right margin: 100 DBG>この例は,左マージン設定はそのままにして右マージン設定だけを変更する方法を示します。
DBG> SET MARGINS 5: DBG> SHOW MARGINS left margin: 5 , right margin: 100 DBG>この例は,右マージン設定はそのままにして左マージン設定だけを変更する方法を示します。
デバッガ・モードを使用可能または使用不可能にします。
SET MODE mode[, . . . ]
DYNAMIC | 省略時の設定。動的モードを使用可能にします。 動的モードを使用可能にすると,デバッガはプログラム実行中にモジュールとイメージを自動的に設定するので,SET MODULE またはSET IMAGEコマンドを入力する必要がなくなります。特に,デバッガが実行に割り込みをかける( デバッガ・プロンプトが表示される) 場合は,実行が現在中断されているルーチンを含んでいるモジュールとイメージを必ず自動的に設定します。 モジュールまたはイメージがすでに設定されている場合, 動的モードはそのモジュールとイメージには何の影響も与えません。 デバッガはモジュールまたはイメージを自動的に設定するときに情報メッセージを発行します。 |
NODYNAMIC | 動的モードを使用不可能にします。 モジュールまたはイメージが設定されると追加メモリが割り当てられるので, 性能が下がらないよう動的モードを使用不可能にしたくなることがあります(CANCEL MODULE コマンドとCANCEL IMAGEコマンドでモジュールとイメージを取り消すことによってメモリを解放することもできます) 。動的モードを使用不可能にした場合,SET MODULEコマンドとSET IMAGEコマンドで明示的にモジュールとイメージを設定しなければなりません。 |
G_FLOAT | 式で指定した倍精度浮動小数点定数をデバッガがG_FLOAT として解釈することを指定します( プログラム内で宣言された変数の解釈には影響しません) 。 |
NOG_FLOAT | 省略時の設定。 式で指定した倍精度浮動小数点定数をデバッガがD_FLOATとして解釈することを指定します( プログラム内で宣言された変数の解釈には影響しません) 。 |
INTERRUPT | 省略時の設定。マルチプロセス・デバッグ構成の場合(DBG$PROCE SSの値がMULTIPROCESSの場合)に指定できます。プログラム実行が中断しているプロセスがある場合, イメージを実行している別のプロセスにデバッガが割り込み, 入力を促すプロンプトを表示することを指定します。 |
NOINTERRUPT | マルチプロセス・
デバッグ構成の場合(DBG$PROCESSの値がMULT IPROCESSの場合)に指定できます。
プログラム実行が中断しているプロセスがある場合,デバッガが次のアクションを行うことを指定します。
|
KEYPAD |
省略時の設定。キーパッド・モードを使用可能にします。キーパッド・モードを使用可能にすると, 数値キーパッドのキーを使用して定義済みの機能を実行できます。 デバッガ・コマンド(画面モードで便利なもの)の中にはキーパッド・ キーにバインドされているものもあります。(ヘルプ・ トピックKeypad_Definitions_CIを参照してください。また,現在のキー定義を調べるにはSHOW KEY コマンドを使用してください。) DEFINE/KEY コマンドを使用してキー機能を再定義することもできます。 |
NOKEYPAD |
キーパッド・モードを使用不可能にします。使用不可能にすると,数値キーパッドのキーは定義済み機能を果たさなくなります。 また,DEFINE /KEYコマンドを使用してデバッガ機能をキーに割り当てることもできなくなります。 |
LINE | 省略時の設定。 可能ならば,プログラム記憶位置を行番号で表示することを指定します。 |
NOLINE | デバッガが, プログラム記憶位置を行番号ではなく,routine-name + byte-offsetで表示することを指定します。 |
OPERANDS[=keyword] | (VAXのみ) 命令を調べるためにEXAMINEコマンドを使用したとき,命令,オペランド, オペランドのアドレス,オペランドの内容を表示するように指定します。 オペランドがレジスタでない場合に表示する情報のレベルはBRIEF キーワードとFULLキーワードのどちらを使用するかで異なります。 省略時の設定はOPERANDS=BRIEFです。 |
NOOPERANDS | (VAXのみ。省略時の設定。)命令を調べるためにEXAMINE コマンドを使用したときに,命令とオペランドを表示するように指定します。 |
SCREEN |
画面モードを使用可能にします。画面モードを使用可能にすると,端末の画面を長方形の領域に分割して, 各領域にそれぞれ別のデータを表示することができます。 画面モードでは,省略時の設定(行単位の非画面モード) より多くの情報をもっと都合よく表示できます。また,定義済みのディスプレイを使用することも, 自分で定義することもできます。 |
NOSCREEN |
省略時の設定。画面モードを使用不可能にします。 |
SCROLL |
省略時の設定。スクロール・モードを使用可能にします。スクロール・ モードを使用可能にすると,画面モード出力やDOディスプレイは, 生成されるたびに行ごとにスクロールすることによって更新されます。 |
NOSCROLL |
スクロール・モードを使用不可能にします。スクロール・モードを使用不可能にすると, 画面モード出力やDOディスプレイは,コマンド1つにつき1 回だけ更新されます(出力が生成されるたびに1行ずつ更新されるわけではありません) 。スクロール・モードを使用不可能にすると,発生する画面更新回数が少なくなり, 処理速度が遅い端末では便利です。 |
SEPARATE | (VWSを実行するワークステーションにだけ適用します。) デバッガの入出力用に別ウィンドウを作成することを指定します。 画面用プログラムでは,プログラムの入出力を含めすべてのデバッガの表示がウィンドウ内で移動させられてしまうので, この機能を使用すると便利です。別ウィンドウは高さ24行, 幅80桁で,VTシリーズの端末画面をエミュレートします。 |
NOSEPARATE | (省略時の設定。VWSを実行するワークステーションだけに適用します。) デバッガの入出力用に別ウィンドウを作成しないことを指定します。 |
SYMBOLIC | 省略時の設定。シンボリック・モードを使用可能にします。 シンボリック・モードを使用可能にすると,(可能ならば) アドレス式で示した記憶位置をシンボルで表示し,(可能ならば) 命令オペランドをシンボルで表示します。EXAMINE/NOSYMBOLICを指定すると,EXAMINE コマンドの実行中,SET MODE SYMBOLICを上書きできます。 |
NOSYMBOLIC | シンボリック・ モードを使用不可能にします。シンボリック・モードを使用不可能にすると, デバッガは数値アドレスをシンボル化しません(デバッガは数字を名前に変換しません) 。これは,シンボリック名ではなく数値アドレスを表示するときに便利です( これらのアドレスに対応するシンボリック名が存在する場合) 。シンボリック・モードを使用不可能にするとデバッガは数値から名前に変換する必要がないので, コマンド処理はいくらか速くなります。EXAMINE/SYMBOLIC を使用すると,EXAMINEコマンドの実行中,SET MODE NOSYMBOLIC を上書きできます。 |
関連コマンド
DBG> SET MODE SCREENこのコマンドはデバッガを画面モードにします。
現在のイメージ内のモジュールのシンボル・レコードをそのイメージの実行時シンボル・ テーブル(RST)にロードします。
SET MODULE [module-name[, . . . ]]
デバッガは,その起動時に遷移アドレスを含んでいるモジュール(メイン・ プログラム)を設定します。省略時の設定では,動的モードが使用可能です(SET MODE DYNAMIC) 。このため,デバッガはプログラムが実行するときにモジュール( およびイメージ)を自動的に設定して,あとで必要なときにシンボルを参照できるようにします。 特に,実行が中断している場合は必ず, 実行を中断しているルーチンを含んでいるモジュールとイメージをデバッガは設定します。Ada プログラムの場合は,モジュールが動的に設定されると, 省略時には関係するモジュールも自動的に設定され,正しいシンボルにアクセスできるよう( 可視状態)にします。
動的モードは,参照する必要のあるシンボルのほとんどにアクセスできるようにします。 まだ設定されていないモジュール内のシンボルを参照しなければならないときは, 次のようにします。
動的モードが使用不可能にしてあるとき(SET MODE NODYNAMIC)には,遷移アドレスを含んでいるモジュールだけが自動的に設定されます。 それ以外のモジュールは明示的に設定しなければなりません。
SET IMAGEコマンドを使用して新しいイメージを設定する場合,すでに設定されているモジュールはすべて設定されたままです。 ただし,アクセスできるのは, 現在のイメージで設定されているモジュール内のシンボルだけです。 他のイメージで設定されているモジュール内のシンボルに一時的にアクセスすることはできません。
動的モードが使用可能な場合,RSTの増加するサイズに対応できるように, メモリは自動的に割り当てられます。動的モードが使用不可能な場合, ユーザがモジュールまたはイメージを設定したために必要になった余分なメモリをデバッガが自動的に割り当てます。 動的モードが使用可能な場合も使用不可能な場合も, 設定するモジュール数が増えて性能に問題が生じたらCANCEL MODULE コマンドを使用して設定モジュール数を削減してください。
SET SCOPEコマンド内のパラメータがまだ設定されていないモジュール内のプログラム記憶位置を指定すると,SET SCOPE コマンドがそのモジュールを設定します。
Adaプログラムに固有な情報については,ヘルプ・トピックLanguage_Support Ada を参照してください。
関連コマンド
DBG> SET MODULE SUB1このコマンドはSUB1モジュールを設定します(SUB1モジュールのシンボル・ レコードをRSTにロードします)。
DBG> SET IMAGE SHARE3 DBG> SET MODULE MATH DBG> SET BREAK %LINE 31この例では,SET IMAGEコマンドが共用可能イメージSHARE3を現在のイメージにします。SET MODULE コマンドはSHARE3イメージ内のMATHモジュールを設定します。SET BREAK コマンドはMATHモジュールの行31にブレークポイントを設定します。
DBG> SHOW MODULE/SHARE module name symbols language size FOO yes MACRO 432 MAIN no FORTRAN 280 . . . SHARE$DEBUG no Image 0 SHARE$LIBRTL no Image 0 SHARE$MTHRTL no Image 0 SHARE$SHARE1 no Image 0 SHARE$SHARE2 no Image 0 total modules: 17. bytes allocated: 162280. DBG> SET MODULE SHARE$SHARE2 DBG> SHOW SYMBOL * IN SHARE$SHARE2この例では,SHOW MODULE/SHAREコマンドが,現在のイメージとすべての共用可能イメージ( 共用可能イメージの名前の前には"SHARE$"が付きます) 内のすべてのモジュールを表示します。SET MODULE SHARE$SHARE2コマンドは共用可能イメージ・ モジュールSHARE$SHARE2を設定します。SHOW SYMBOLコマンドは共用可能イメージSHARE2内で定義された任意のユニバーサル・ シンボルを表示します。詳しい説明は SHOW MODULE/SHAREコマンドを参照してください。
デバッガ出力オプションを使用可能または使用不可能にします。
SET OUTPUT output-option[, . . . ]
LOG | デバッガの入力と出力をログ・ファイルに記録することを指定します。SET LOG コマンドでログ・ファイルを指定すると, デバッガはそのファイルに書き込みます。指定しない場合には, 省略時の設定により,デバッガはSYS$DI SK[]:DEBU G.LOGに書き込みます。 |
NOLOG | 省略時の設定。 デバッガの入力と出力をログ・ファイルに記録しないことを指定します。 |
SCREEN_LOG | 画面モードの場合, 画面が更新されたときに画面の内容をログ・ファイルに記録することを指定します。 画面の内容を記録するには,SET OUTPUT LOGも指定しなければなりません。 ログ・ファイルの指定についてはLOGオプションの説明を参照してください。 |
NOSCREEN_ LOG | 省略時の設定。画面モードの場合に,画面の内容をログ・ ファイルに記録しないことを指定します。 |
TERMINAL |
省略時の設定。デバッガ出力を端末に表示することを指定します。 |
NOTERMINAL |
デバッガ出力を診断メッセージを除いて端末に表示しないことを指定します。 |
VERIFY | コマンド・プロシージャまたはDO 句から実行している各入力コマンド文字列を現在の出力装置へエコーバックすることを指定します。 現在の出力装置は省略時の設定ではSYS$OUTPUT ( ユーザの端末)ですが,論理名DBG$OUTPUTによって再定義できます。 |
NOVERIFY | 省略時の設定。コマンド・プロシージャまたはDO句から実行している各入力コマンド文字列をデバッガが表示しないように指定します。 |
関連コマンド
DBG> SET OUTPUT VERIFY,LOG,NOTERMINALこのコマンドはデバッガが次のいずれかのアクションをとることを指定します。
可視プロセスの設定,1つまたは複数のプロセスの属性の変更,または動的プロセスの設定の許可/禁止を行います。
マルチプロセス・デバッグ構成の場合(DBG$PROCESSの値がMULTIPROCESSの場合) に指定できます。
SET PROCESS [process-spec[, . . . ]]
[%PROCESS_NAME] proc-name | スペースや小文字を全く含まないプロセス名。 プロセス名にはワイルドカード文字のアスタリク(*) を含むこともできます。 |
[%PROCESS_NAME] "proc-name" | スペースや小文字を含むプロセス名。二重引用符( ")の代わりに一重引用符(') を使用することもできます。 |
%PROCESS_PID proc-id | プロセス識別子(PID, 16 進数)。 |
%PROCESS_NUMBER proc-number (または%PROC proc-number) | デバッガの制御下に入ったときにプロセスに割り当てられた番号。 プロセス番号はSHOW PROCESS コマンドの実行で表示されます。 |
proc-group-name | DEFINE/PROCESS_GROUP コマンドで定義されたプロセスのグループを表すシンボル。再帰的なシンボル定義は指定してはなりません。 |
%NEXT_ PROCESS | デバッガの循環プロセス・リスト中で可視プロセスの次のプロセス。 |
%PREVIOUS_ PROCESS | デバッガの循環プロセス・リスト中での可視プロセスの前のプロセス。 |
%VISIBLE_ PROCESS | シンボル,レジスタ値,ルーチン呼び出し, ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタック, レジスタ・セット,およびイメージを持つプロセス。 |
すべてのプロセスを指定するためにワイルドカード文字のアスタリスク(*) または/ALL修飾子を使用することもできます。/ALLまたは/[NO]DYNAMIC を指定する場合,プロセスは指定できません。プロセスを指定しないか, または/ALLを/[NO]HOLDとともに指定しないと,可視プロセスが選択されます。
/NOHOLD修飾子は,指定されたプロセスを凍結状態から解放します。この結果, コマンドGO,STEP,またはCALLを入力すると,どのプロセスが可視プロセスであるかどうかに関係なく, 指定されたプロセス内のイメージを実行できます。
この動作は,DOコマンドを使用して特定のプロセスにコマンドGO,STEP, またはCALLをブロードキャストしても指定できます。
コマンドGO,STEP,CALL,EXIT,QUITの凍結状態にあるプロセスとそうでないプロセスに対する影響については, 各コマンドの説明を参照してください。
省略時の設定では,コマンドは可視プロセスのコンテキストで実行されます。( 現在コンテキストをデバッグ中であるプロセス)。シンボルの検索やブレークポイントの設定などは, 可視プロセスのコンテキスト内で実行されます。
DOコマンドを使用すると,コマンドを特定のプロセスのコンテキスト内だけで実行したりすべてのプロセスのコンテキスト内で実行したりできます。DO コマンドは,指定されたプロセス(DOコマンドでプロセスを指定しない場合はすべてのプロセス) ごとにSET PROCESS/VISIBLEコマンドを指定し, さらに指定されたコマンドを入力するのと同じ効果を持っています。
省略時の設定では,動的プロセス設定が許可され,/[NO]DYNAMICで制御されます。 また,動的プロセス設定を許可すると,デバッガがプログラムの実行を中断し, それに対するプロンプトを表示するたびに,実行が中断されたプロセスが自動的に可視プロセスになります。
関連コマンド
DBG_1> SET PROCESS/HOLD/ALL DBG_1> SHOW PROCESS/ALL Number Name Hold State Current PC * 1 TEST_X YES step PROG\%LINE 50 2 TEST_Y YES break PROG\%LINE 71 DBG_1>このSET PROCESS/HOLD/ALLコマンドはすべてのプロセスを凍結状態にします。 これは,SHOW PROCESS/ALL表示で確認されます。
DBG_1> SET PROCESS/NOHOLD %VISIBLE_PROCESS DBG_1> SHOW PROCESS/ALL Number Name Hold State Current PC * 1 TEST_X step PROG\%LINE 50 2 TEST_Y YES break PROG\%LINE 71 DBG_1>このSET PROCESS/NOHOLD %VISIBLE_PROCESSコマンドは,可視プロセスを凍結状態から解放します。 これはSHOW PROCESS/ALL表示で確認されます。
DBG_1> SET PROCESS TEST_Y DBG_2> SHOW PROCESS Number Name Hold State Current PC * 2 TEST_Y YES break PROG\%LINE 71 DBG_2>このSET PROCESS TEST_Yコマンドは,TEST_Yプロセスを可視プロセスにします。 省略時の設定により,SHOW PROCESSコマンドは可視プロセスに関する情報を表示します。
DBG_1> SET PROCESS/HOLD/ALL DBG_1> DO (EXAMINE X; STEP) For %PROCESS_NUMBER 1 MAIN_PROG\X: 78 For %PROCESS_NUMBER 2 TEST\X: 29 stepped to MAIN_PROG\%LINE 26 in %PROCESS_NUMBER 1 26: K = K + 1 DBG_1>この例では,SET PROCESS/HOLD/ALLコマンドがすべてのプロセスを凍結状態にします。DO コマンドがすべてのプロセス(この例ではプロセス1とプロセス2) にEXAMINE XコマンドとSTEPコマンドをブロードキャストします。 可視プロセスでは凍結状態は無視されるので,STEPコマンドはプロセス1 のコンテキスト内で実行されます。プロセス2は凍結状態にあるため,このプロセスではSTEP コマンドは実行されません。
デバッガ・プロンプト文字列をユーザが指定するものに変更します。
SET PROMPT [prompt-parameter]
マルチプロセス・デバッグ構成ではない場合(論理名DBG$PROCESSが定義されていないまたは値がDEFAULT の場合),省略時の設定では,プロンプト文字列はDBG> です。
マルチプロセス・デバッグ構成の場合(DBG$PROCESSの値がMULTIPROCESSの場合) ,省略時の設定では,プロンプト文字列がプロセスに依存しない接頭辞(prompt-parameter によって指定されます)とプロセス固有の接尾辞(/[NO]SUFFIX によって指定されます)から構成されます。接尾辞は,可視プロセスが変わると自動的に変わります。
/SUFFIX修飾子を指定すると"動的プロンプト設定"が許可されます。したがって, プロンプト文字列には,自動的に可視プロセスを示すプロセス固有の接尾辞が付きます。/SUFFIX は省略時の設定です。
/NOSUFFIX修飾子は動的プロンプト設定を禁止します。したがって,プロンプト文字列にはプロセス固有の接尾辞が付かず, 他のプロセスが可視プロセスになっても変わりません。
省略時の設定では,デバッガを起動してマルチプロセス・プログラムをデバッグする場合, プロンプト文字列はDBG_1>です。これは,動的プロンプト設定が許可され, 可視プロセスがプロセス1(デバッガに接続された最初のプロセス) であることを意味しています。プロンプト文字列のプロセス固有の接尾辞は, 次のいずれかのprocess-identifier-typeキーワードとともに/SUFFIX 修飾子を指定すれば制御できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PROCESSコマンドの実行で表示される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別子(PID) が付きます。 |
次の表に,マルチプロセス・デバッグ構成の場合に使用できるプロンプト文字列を示します。 プロンプト文字列全体は,prompt-parameterコマンド・ パラメータ(プロセスに依存しない接頭辞を制御します), /[NO]SUFFIXの値,およびprocess-identifier-typeキーワード(プロセス固有の接尾辞を制御します) によって決まります。
プロンプト・ パラメータ(接頭辞) | 修飾子とキーワード(接尾辞) | その結果作成される プロンプト文字列 |
---|---|---|
なし | なし | 変更されない |
なし | /NOSUFFIX | DBG> |
なし | /SUFFIX | DBG_proc-number> [1] |
なし | /SUFFIX=PROCESS_NAME | proc-name> |
なし | /SUFFIX=PROCESS_NUMBER | proc- number> |
なし | /SUFFIX=PROCESS_PID | pid> |
XYZ_ | /NOSUFFIX | XYZ_ > |
XYZ_ | /SUFFIX | XYZ_proc-number> |
XYZ_ | /SUFFIX=PROCESS_NAME | XYZ_ proc-name> |
XYZ_ | /SUFFIX=PROCESS_NUMBER | XYZ_proc- number> |
XYZ_ | /SUFFIX=PROCESS_PID | XYZ_pid> |
[1]マルチプロセス・デバッグ構成の場合の省略時のプロンプトはDBG_ process-number>です。これは,次のコマンドを入力するのと同じことです。 DBG> SET PROMPT/SUFFIX=PROCESS_NUMBER"DBG_" |
マルチプロセス・デバッグ構成を使用している場合(論理名DBG$PROCESSの値がMULTIPROCESS の場合),/[NO]SUFFIXを指定すると,プロンプト文字列のプロセス固有の接尾辞を指定できます。
ワークステーションでデバッガを使用している場合,/[NO]POPを指定すると, デバッガが入力を促すプロンプトを表示したときにデバッガ・ウィンドウを他のウィンドウより上にポップアップするかどうかを制御します。
関連コマンド
DBG> SET PROMPT "$ " $ SET PROMPT "d b g : " d b g : SET PROMPT "DBG> " DBG>この例では,SET PROMPTコマンドを連続して実行した結果,デバッガのプロンプトが"DBG>" から"$"へ,次に"d b g :"へ変わったあとに,さらに"DBG>" へ戻ります。
DBG_1> SET PROMPT/NOSUFFIX "dbg> " dbg> SET PROMPT/SUFFIX DBG_1> SET PROMPT/SUFFIX=PROCESS_NUMBER "xyz_" xyz_1> SET PROMPT/SUFFIX=PROCESS_NAME SMITH> SET PROMPT/SUFFIX=PROCESS_NAME "John " John SMITH> SET PROMPT/SUFFIX=PROCESS_PID 20800E4D>この例では,SET PROMPTコマンドを連続して実行した場合の,マルチプロセス・ プログラムに対する/[NO]SUFFIXとprompt-parameterの影響を示します。
整数データを入力するときと表示するときの基数を設定します。 /OVERRIDEとともに指定すると,すべてのデータが,指定された基数の整数データとして表示されます。
SET RADIX radix
BINARY | 基数を2進数に設定する。 |
DECIMAL | 基数を10進数に設定する。これは,BLISS ,MACRO-32 MACRO-32,およびMACRO-64 MACRO-64 (Alphaのみ) を除くすべての言語における省略時の設定である。 |
DEFAULT | 基数を言語の省略時の設定にする。 |
OCTAL | 基数を8進数に設定する。 |
HEXADECIMAL | 省略時の基数を16 進数に設定する。これは,BLISS,MACRO-32 MACRO-32,およびMACRO-64 MACRO-64 (Alpha のみ)の省略時の設定である。 |
データの入力と表示の省略時の基数はほとんどの言語の場合どちらも10進数です。VAX プロセッサでは,例外はBLISSとMACRO-32 MACRO-32 です。これらの言語の省略時の基数は16進数です。Alphaプロセッサでは, 例外はBLISSとMACRO-32とMACRO-64 です。MACRO-32とMACRO-64です。これらの言語の省略時の基数は16 進数です。
SET RADIXコマンドを使用して,データの入力または表示の新しい基数(入力基数と出力基数それぞれ) を指定できます。
修飾子を指定しないと,SET RADIXコマンドは入力基数と出力基数の両方を変更します。/INPUT または/OUTPUTを指定すると,このコマンドは,それぞれ入力基数または出力基数を変更します。
SET RADIX/OVERRIDEを使用すると,変更されるのは出力基数だけですが, すべてのデータ(整数型のデータだけでなく)が,指定された基数の整数データとして表示されます。
SET RADIXコマンドは,/OVERRIDEとともに使用する以外は,非整数型の値( 実数型の値や列挙型の値など)の解釈や表示には影響しません。
コマンドEVALUATE,EXAMINE,DEPOSITには,基数修飾子(/BINARY, /HEXADECIMALなど)があります。これらを指定すると,そのコマンドの実行中はSET RADIX またはSET RADIX/OVERRIDEで設定した基数を上書きできます。
また,組み込みシンボル%BIN,%DEC,%HEX,%OCTをアドレス式と言語式で使用すると, 整数リテラルを2進数,10進数,16進数または8進数の基数で解釈するように指定できます。 ヘルプ・トピックBuilt_in_Symbolsを参照してください。
関連コマンド
DBG> SET RADIX HEXこのコマンドは,基数を16進数に設定します。これは,省略時の設定では, 整数データが16進数の基数で解釈され表示されることを意味しています。
DBG> SET RADIX/INPUT OCTこのコマンドは,入力基数を8進数に設定します。これは,省略時の設定では, 入力された整数データは8進数の基数で解釈されることを意味しています。
DBG> SET RADIX/OUTPUT BINこのコマンドは,出力基数を2進数に設定します。これは,省略時の設定では, 整数データが2進数の基数で表示されることを意味しています。
DBG> SET RADIX/OVERRIDE DECIMALこのコマンドは,上書き基数を10進数に設定します。これは,省略時の設定では, すべてのデータ(整数型のデータに限らず)が10進整数データとして表示されることを意味しています。
パス名接頭識別子を指定しない場合に,デバッガがシンボル(変数名,ルーチン, 行番号など)を検索する方法を設定します。
SET SCOPE location[, . . . ]
path-name prefix | パス名接頭識別子で示される有効範囲を指定します。
パス名接頭識別子は,
1つまたは複数のネストしているプログラムの要素(モジュール,ルーチン,
ブロックなど)の名前で構成されます。これらの名前はバックスラッシュ(\)
で区切られています。パス名接頭識別子が2つ以上の名前で構成される場合,(\)
の左にはネスト要素を入れ,右にはネストされた要素を入れます。
共通パス名接頭識別子の形式は,
module(\)routine( \)block(\)です。
モジュール名だけを指定し,その名前がルーチン名と同じである場合は,/MODULE を使用します。そうしないと,そのルーチンを指定しているものとデバッガがみなします。 |
n | 呼び出しスタックのnレベル下にあるルーチンによって示される有効範囲を指定します( nは10進整数です)。整数によって指定される有効範囲は, プログラムの実行に伴い動的に変化します。値 0は,現在実行中のルーチンを示し, 値1は,そのルーチンを呼び出す側を示すというように呼び出しスタックを下っていきます。 省略時の有効範囲検索リストは, 0,1,2, . . . ,nです。ここでnは呼び出しスタック内の呼び出し数です。 |
\ (バックスラッシュ) | グローバルな有効範囲-すなわち,グローバル・ シンボルの存在が認識されているすべてのプログラム記憶位置の集合を指定します。 グローバル・シンボルの定義と宣言方法は,言語によって異なります。 |
記憶位置パラメータを2個以上指定すると,有効範囲検索リストが設定されます。 デバッガは最初のパラメータを使用してシンボルを解釈できないと, 次のパラメータを使用し,正しくシンボルを解釈するか指定されたパラメータがなくなるまで, リストに並んでいる順にパラメータを使用します。
SET SCOPE/CURRENTを使用する場合,次の規則と動作に注意してください。
ほとんどの場合は,この省略時の有効範囲検索リストを使用すれば,言語規則に準拠した自然な方法であいまいさを解消できます。 ただし,何回実行しても定義されているシンボルにアクセスできないときは, 次のいずれかの方法を使用します。
DBG> EXAMINE MOD4\ROUT3\X DBG> TYPE MOD4\27
DBG> SET SCOPE MOD4\ROUT3 DBG> EXAMINE X DBG> TYPE 27
SET SCOPEコマンドは,シンボルを指定するたびにパス名を使用しなければならない場合に便利です。
省略時の有効範囲検索リストを復元するには,CANCEL SCOPEコマンドを使用します。
省略時の有効範囲検索リストが有効であれば,SET SCOPE/CURRENTコマンドを使用して, シンボル検索を有効範囲0以外の数値(呼び出しスタックから数えた数値) の有効範囲(たとえば,有効範囲2)で開始することを指定できます。
SET SCOPEコマンドを使用し,/CURRENTを指定しないと,デバッガは明示的に指定したプログラム記憶位置だけを検索します。 また,SET SCOPEコマンドで設定した有効範囲または有効範囲検索リストは, 省略時の有効範囲検索リストを復元するか新たにSET SCOPE コマンドを指定するまで有効です。 ただし,/CURRENTを指定すれば,プログラムの実行が再開されるたびに省略時の有効範囲検索リストが復元されます。
SET SCOPEコマンドは,/CURRENTが指定されたときだけ画面モード・ソース・ ディスプレイまたは機械語命令ディスプレイを更新します。
SET SCOPEコマンドで指定した名前がモジュールとルーチンの両方の名前である場合, デバッガは有効範囲をルーチンに設定します。このような場合は,SET SCOPE/MODULE コマンドを使用すれば,有効範囲をモジュールに設定できます。
SET SCOPEコマンドで指定したモジュール名を持つモジュールがまだ設定されていないと, デバッガはそのモジュールを設定します。ただし,モジュールだけを設定する場合は,SET SCOPE コマンドではなくSET MODULEコマンドを使用してください。SET SCOPE コマンドを使用すると,現在の有効範囲検索リストを妨害する可能性があるためです。
Adaプログラムについての詳しい説明は,ヘルプ・トピックLanguage_ Support Adaを参照してください。
関連コマンド
DBG> EXAMINE Y %DEBUG-W-NOUNIQUE, symbol 'Y' is not unique DBG> SHOW SYMBOL Y data CHECK_IN\Y data INVENTORY\COUNT\Y DBG> SET SCOPE INVENTORY\COUNT DBG> EXAMINE Y INVENTORY\COUNT\Y: 347.15 DBG>この例では,最初のEXAMINE Yコマンドは,シンボルYが何回も定義されており, 現在の有効範囲検索リストでは解消できないことを示しています。 SHOW SYMBOLコマンドは,宣言されているシンボルYをすべて表示します。 SET SCOPEコマンドは,INVENTORYモジュールのCOUNTルーチンでパス名接頭識別子のないシンボルを検索するようにデバッガに指示します。 この結果, その次のEXAMINEコマンドは,Yを明確に解釈できます。
DBG> CANCEL SCOPE DBG> SET SCOPE/CURRENT 1この例では,CANCEL SCOPEコマンドが省略時の有効範囲検索リスト(0,1,2, . . . , n)を復元します。次にSET SCOPE/CURRENT コマンドが有効範囲検索リストを 1,2, . . . ,nに変更し, シンボル検索が有効範囲 1 ( すなわち,実行が現在中断しているルーチンを呼び出す側) で開始するようにします。定義済みソース表示SRCと機械語命令ディスプレイ INST が更新され,実行が中断しているルーチンを呼び出す側のソースと命令を表示するようになります。
DBG> SET SCOPE 1 DBG> EXAMINE %R5この例では,SET SCOPEコマンドは,有効範囲1 (すなわち,実行が中断しているルーチンを呼び出す側) でパス名接頭識別子のないシンボルを検索するようにデバッガに指示します。EXAMINE コマンドは,呼び出す側のルーチンのレジスタR5 の値を表示します。SET SCOPEコマンドとともに/CURRENT を指定しないと,ソース表示または機械語命令ディスプレイは更新されません。
DBG> SET SCOPE 0, STACKS\R2, SCREENこのコマンドは,次の有効範囲検索リストに従ってパス名接頭識別子のないシンボルを検索するようにデバッガに指示します。 これにより,デバッガは最初にPC 有効範囲(0で示される)で検索します。ここで指定されたシンボルを見つけることができないと,STACKS モジュールのR2ルーチンで探します。 それでも見つからない場合は,SCREENモジュール内を検索します。 ここでも指定されたシンボルを見つけることができないと,デバッガはそれ以上は検索しません。
DBG> SHOW SYMBOL X data ALPHA\X ! global X data ALPHA\BETA\X ! local X data X (global) ! same as ALPHA\X DBG> SHOW SCOPE scope: 0 [ = ALPHA\BETA ] DBG> SYMBOLIZE X address ALPHA\BETA\%R0: ALPHA\BETA\X DBG> SET SCOPE \ DBG> SYMBOLIZE X address 00000200: ALPHA\X address 00000200: (global) X DBG>この例では,SHOW SYMBOLコマンドが,シンボルXに対して2つの宣言(グローバルALPHA\X (2 回定義されている)とローカルALPHA\BETA\X)があることを示します。 現在の有効範囲では,X (ALPHA\BETA\X)のローカル宣言が可視状態にあります。 有効範囲がグローバルな有効範囲(SET SCOPE \)に設定されたあとで,X のグローバル宣言が可視状態になります。
SEARCHコマンドの省略時の修飾子(/ALLまたは/NEXT,/IDENTIFIERまたは/STRING) を設定します。
SET SEARCH search-default[, . . . ]
ALL | それ以降のSEARCHコマンドがSEARCH /NEXTではなくSEARCH/ALLとして扱われます。 |
IDENTIFIER | それ以降のSEARCHコマンドがSEARCH /STRINGではなくSEARCH/IDENTIFIERとして扱われます。 |
NEXT | 省略時の設定。それ以降のSEARCH コマンドがSEARCH/ALLではなくSEARCH/NEXTとして扱われます。 |
STRING | 省略時の設定。 それ以降のSEARCHコマンドがSEARCH/IDENTIFIERではなくSEARCH /STRINGとして扱われます。 |
1つのSEARCHコマンドの実行中に,別のSEARCH修飾子を指定すれば,現在のSEARCH の省略時の修飾子を上書きできます。現在のSEARCHの省略時の修飾子を表示するには,SHOW SEARCH コマンドを使用します。
関連コマンド
DBG> SHOW SEARCH search settings: search for next occurrence, as a string DBG> SET SEARCH IDENTIFIER DBG> SHOW SEARCH search settings: search for next occurrence, as an identifier DBG> SET SEARCH ALL DBG> SHOW SEARCH search settings: search for all occurrences, as an identifier DBG>この例では,SET SEARCH IDENTIFIERコマンドが,指定された範囲内でその文字列が出現するところを検索するが, 現在の言語の識別子の一部になれる文字によってどちらの側にもつながっていない場合だけ, その文字列を表示するようにデバッガに指示します。
SET SEARCH ALLコマンドは,指定された範囲内でその文字列が出現するところをすべて検索し表示します。
ソース・ファイルのディレクトリの検索リストと検索方法のどちらか一方, あるいは両方を指定します。
SET SOURCE directory-spec[, . . . ]
1つのSET SOURCEコマンドでディレクトリを2つ以上指定すると,ソース・ ディレクトリ検索リストが作成されます(プロセス・レベルで定義した検索リスト論理名を指定することもできます) 。この場合,デバッガは指定された最初のディレクトリから順に検索し, ソース・ファイルを検索するかディレクトリ・ リストが終るまで検索を続けます。
OpenVMSシステムのバージョン6.1では, OpenVMSファイルの完全指定は次の構成になっています。
node::device:[directory]file-name.file-type;version-number
この完全指定は,OpenVMSオペレーティング・システムとともに出荷されるDECnet の省略時のバージョンで使用されるDECnet ノード名機能を反映しています。 詳しい説明は,『DECnet for OpenVMS Networking Manual』を参照してください。
OpenVMSバージョン6.1と DECnet-Plus for OpenVMSを稼動しているOpenVMSシステムでは,ファイルの完全指定に完全名という拡張ノード指定を含めることができます。 完全名は,DECdns 命名サービスに格納することができる階層構造の DECnet-Plus for OpenVMSノード名です。 完全名は次の形式で最高255バイトまで可能です。
namespace:.directory ... .directory.node-name
この構文では,namespaceにグローバル命名サービスを, directory ... .directoryに命名サービス内の階層ディレクトリパスを, そしてnode-nameにDECnetノードを定義する特定のオブジェクトを指定します。
名前の体系を設定するための完全名と提案事項については,『OpenVMSシステム管理者マニュアル』を参照してください。DECnet- Plus for OpenVMS については,『DECnet-Plus for OpenVMS Introduction and User's Guide』を参照してください。
ソース・ファイルのファイル完全指定が255文字を超えると,デバッガはファイルを検索できません。 この問題を解決するには,まず論理名"X" (DCLレベルで)を長いファイル指定に合わせて拡大するよう定義してからSET SOURCE X コマンドを使用します。
/DISPLAY修飾子または/EDIT修飾子のどちらもないSET SOURCEコマンドはディスプレイおよび編集検索ディレクトリの両方を変更します。
/DEBUG修飾子を使用してプログラムをコンパイルする場合,ルート・ディレクトリ論理名を使用してソース・ ファイルの記憶位置を指定するときは, それが隠しルート・ディレクトリ論理名でなければなりません。 隠しルート・ディレクトリ論理名でない場合ソース・ファイルを他のディレクトリに移動すると, デバッガのSET SOURCEコマンドを使用してソース・ ファイルの新しい記憶位置を指定することができません。
隠しルート・ディレクトリ論理名を作成するには,DCLのDEFINEコマンドに/TRANSLATION_ATTR=CONCEALED 修飾子を指定します。
SET SOURCEコマンドを実行する場合,2つの修飾子/LATESTと/EXACTのいずれかが必ず有効でなければなりません。 これらの修飾子は,デバッガの検索方法に影響を与えます。/LATEST 修飾子は,最後に作成されたバージョン( ディレクトリ内の一番大きい番号のバージョン)を検索するようデバッガに指示します。/EXACT 修飾子は,最後にコンパイルされたバージョン( コンパイル時に作成されたデバッガ・シンボル・テーブルに記録されているバージョン) を検索するようデバッガに指示します。たとえば,SET SOURCE/LATESTコマンドはSORT.FOR;3を検索し,SET SOURCE/EXACTコマンドはSORT.FOR;1 を検索するという具合です。
デバッガはディレクトリ検索リストを使用してバージョンを見つけると, 作成日時,更新日時,ファイル・サイズ,レコード形式,およびファイル構成がコンパイル時の元のソース・ ファイルと同じかどうかを調べます。 これらがすべて一致した場合,デバッガは元のソース・ファイルが新しいディレクトリにそのままのバージョンで存在していると結論づけます。
デバッガはディレクトリ検索リストを使用してバージョンを見つけられないと, ソース・コードを初めて表示するときに,更新日時が最も近いファイル( そのようなファイルがディレクトリ内に存在している場合)を識別し,NOTORIGSRC メッセージ("original version of source file not found")を発行します。
ソース・コードの表示に使用するファイルがEDITコマンドを使用して編集しようとしているファイルと異なる場合は,/EDIT 修飾子を指定しなければなりません。 これは,Adaプログラムの場合に当てはまります。Ada プログラムの場合,(SET, SHOW, CANCEL) SOURCEコマンドは,ソース・ ディスプレイに使用するファイル(Adaプログラム・ライブラリ内の"コピーされた" ソース・ファイル)の検索に影響を与えます。(SET, SHOW, CANCEL) SOURCE/EDITコマンドは,EDITコマンドを使用して編集するソース・ ファイルの検索に影響を与えます。/EDITとともに/MODULEを使用すると,/EDIT の効果を/MODULEで修飾することができます。
Adaプログラムについての詳しい説明は,ヘルプ・トピックLanguage_ Support Adaを参照してください。
システムに別売レイヤード・プロダクトのコリレーション・ファシリティ(Cor relation Facility) をインストールしなければ,SET SOURCEコマンドに/ORIGINAL を修飾子を使用することはできません。デバッグ前にコリレーション・ ライブラリを作成する方法については,コリレーション・ファシリティのドキュメントを参照してください。
次に,保持デバッガ(Kept Debugger)を起動してSET SOURCE/ORIGINALコマンドを次のように実行します。
$ DEBUG/KEEP DBG> SET SOURCE/ORIGINAL DBG> RUN filename.EXE
以上のコマンドを実行すると,他のサポート言語のプログラムと同じようにSTDL ソース・コードをデバッグすることができるようになります。
関連コマンド
DBG> SHOW SOURCE no directory search list in effect DBG> SET SOURCE [PROJA],[PROJB],[PETER.PROJC] DBG> SHOW SOURCE source directory list for all modules, match the latest source file version: [PROJA] [PROJB] [PETER.PROJC]この例ではSET SOURCEコマンドによって,デバッガがディレクトリ[PROJA] ,[PROJB],[PETER.PROJC]をこの順に検索してソース・ファイルの最新バージョンを検索するようにしています。
DBG> SET SOURCE/MODULE=CTEST/EXACT [],SYSTEM::DEVICE:[PROJD] DBG> SHOW SOURCE source directory search list for CTEST, match the exact source file version: [] SYSTEM::DEVICE:[PROJD] source directory list for all other modules, match the latest source file version: [PROJA] [PROJB] [PETER.PROJC]前の例の続きのこの例では,SET SOURCE/MODULE=CTESTコマンドによって, デバッガが現在の省略時のディレクトリ([]), SYSTEM::DEVICE:[PROJD]の順にソース・ファイルを検索し,CTECTモジュールで使用できるようにしています。/EXACT 修飾子は,デバッグ・シンボル・ テーブルにあるバージョンと正確に一致するバージョンのCTEST ソース・ファイルを検索するように指定しています。
DBG> SET SOURCE /EXACT DBG> SHOW SOURCE no directory search list in effect, match the exact source file DBG> SET SOURCE [JONES] DBG> SHOW SOURCE source directory list for all modules, match the exact source file version: [JONES] DBG> CANCEL SOURCE /EXACT DBG> SHOW SOURCE source directory list for all modules, match the latest source file version: [JONES]この例では,最初のSET SOURCE/EXACTコマンドで設定した検索方法(一致バージョンの検索) は,SET SOURCE [JONES]コマンドでもそのまま有効です。CANCEL SOURCE/EXACT コマンドは,SET SOURCE/EXACTコマンドを取り消し, さらにSET SOURCE [JONES]に影響を与えています。
STEPコマンドの省略時の修飾子(/LINE,/INTOなど)を設定します。
SET STEP step-default[, . . . ]
BRANCH | それ以降のSTEPコマンドがSTEP/BRANCH ( 次の分岐命令までステップ実行する)として扱われます。 |
CALL | それ以降のSTEP コマンドがSTEP/CALL (次の呼び出し命令までステップ実行する)として扱われます。 |
EXCEPTION | それ以降のSTEPコマンドがSTEP/EXCEPTION (次の例外までステップ実行する) として扱われます。 |
INSTRUCTION | それ以降のSTEPコマンドがSTEP
/INSTRUCTION (次の命令までステップ実行する)として扱われます。
VAXプロセッサでは,1つまたは複数の命令( opcode[, . . . ])も指定できます。デバッガは指定されたリスト中で次の命令までステップ実行します。 VAXプロセッサでは,ベクタ命令を指定する場合, 命令修飾子(/UNALIGNED_DATA,/VECTOR_INSTRUCTION, /MODIFY,/0,または/1)と命令ニーモニックをいっしょには指定できません。 |
INTO | それ以降のSTEP コマンドがSTEP/OVER(呼び出されたルーチンを1ステップ実行する) ではなくSTEP/INTO (呼び出されたルーチン内の命令をステップ実行する) として扱われます。INTOを指定した場合,パラメータ[NO]JSB ,[NO]SHARE,[NO]SYSTEMを使用するか,またはSTEP /[NO]JSB,STEP/[NO]SHARE,STEP/[NO]SYSTEMのコマンドと修飾子の組み合わせ( 当STEPコマンドにだけ影響を与えます)を使用して,ステップ実行したいルーチンの型を修飾できます。 |
JSB | (VAXのみ) INTOが指定されている場合,それ以降のSTEP コマンドはSTEP/INTO/JSB (JSB命令によって呼び出されたルーチンとCALL 命令によって呼び出されたルーチン内の命令をステップ実行する) として扱われます。DIBOLを除くすべての言語では,これが省略時の設定です。 |
NOJSB | (VAX のみ) INTOが指定されている場合,それ以降のSTEPコマンドはSTEP/INTO /NOJSB (JSB命令によって呼び出されたルーチンを1ステップとして実行するが,CALL 命令によって呼び出されたルーチンは,その中の命令をステップ実行する) として扱われます。これは,DIBOLにおける省略時の設定です。 |
LINE | 省略時の設定。 それ以降のSTEPコマンドは,STEP/LINE (次の行までステップ実行する) として扱われます。 |
OVER | 省略時の設定。それ以降のSTEPコマンドは,STEP/INTO (呼び出されたルーチン内の命令をステップ実行する) ではなくSTEP/OVER (呼び出されたルーチンを1 ステップとして実行する)として扱われます。 |
RETURN | それ以降のSTEPコマンドは, STEP/RETURN (現在実行中のルーチンの戻り命令をステップ実行する。すなわち, 制御が呼び出した側のルーチンに戻る前の地点までステップ実行する) として扱われます。 |
LINE | 省略時の設定。それ以降のSTEPコマンドは,STEP/LINE (次の行までステップ実行する) として扱われます。 |
SEMANTIC_EVENT | (Alphaのみ)それ以降のSTEPコマンドは,STEP/SEMANTIC_EVENT ( 次のセマンディック・イベントまでステップ実行する) として扱われます。これによって,最適化されたプログラムのデバッガが簡単になります。( 詳細は,『デバッガ説明書』を参照してください。) |
SHARE | 省略時の設定。INTOが指定されている場合,それ以降のSTEPコマンドはSTEP/INTO/SHARE ( 共用可能イメージ内の呼び出されたルーチンとそれ以外の呼び出されたルーチン内の命令をステップ実行する) として扱われます。 |
NOSHARE | INTOが指定されている場合, それ以降のSTEPコマンドが,STEP/INTO/NOSHARE (共用可能イメージ内の呼び出されたルーチンを1 ステップとして実行するが, それ以外のルーチンでは,その中の命令をステップ実行する)として扱われます。 |
SILENT | それ以降のSTEPコマンドがSTEP/SILENT (1ステップあとに,"stepped to . . . "メッセージまたは現在の記憶位置のソース行を表示しない)として扱われます。 |
NOSILENT | 省略時の設定。それ以降のSTEPコマンドがSTEP/NOSILENT (1ステップあとに,"stepped to . . . " メッセージを表示する)として扱われます。 |
SOURCE | 省略時の設定。 それ以降のSTEPコマンドがSTEP/SOURCE(1ステップあとに, 現在の記憶位置のソース行を表示する)として扱われます。またそれ以降のコマンドSET BREAK ,SET TRACE,SET WATCHは,それぞれコマンドSET BREAK/SOURCE ,SET TRACE/SOURCE,SET WATCH/SOURCE(ブレークポイント, トレースポイント,ウォッチポイントで現在の記憶位置のソース行を表示する) として扱われます。 |
NOSOURCE | それ以降のSTEPコマンドがSTEP /NOSOURCE(1ストップあとに,現在の記憶位置のソース行を表示しない) として扱われます。また,それ以降のコマンドSET BREAK,SET TRACE, SET WATCHは,それぞれSET BREAK/NOSOURCE,SET TRACE/NOSOURCE,SET WATCH/NOSOURCE(ブレークポイント,トレースポイント,ウォッチポイントで現在の記憶位置を表示しない) として扱われます。 |
SYSTEM | 省略時の設定。INTOが指定されていると, それ以降のSTEPコマンドがSTEP/INTO/SYSTEM (システム空間(P1空間) 内の呼び出されたルーチンとそれ以外の呼び出されたルーチン内の命令をステップ実行する) として扱われます。 |
NOSYSTEM | INTOが指定されている場合,それ以降のSTEP コマンドがSTEP/INTO/NOSYSTEM(システム空間内の呼び出されたルーチンを1 ステップとして実行するが,他のルーチンの場合はそのルーチン内の命令をステップ実行する) として扱われます。 |
VECTOR_INSTRUCTION | (VAXのみ)それ以降のSTEP コマンドがSTEP/VECTOR_INSTRUCTION(次のベクタ命令をステップ実行する) として扱われます。 |
次のパラメータは,STEPコマンドを実行したときにどの出力を表示するかを制御します。
次のパラメータは,ルーチンを呼び出したときの動作を制御します。
STEPコマンドで省略時の設定以外の修飾子を指定すると,そのコマンドの実行中だけ, 現在のSTEPの省略時の修飾子を上書きできます。SHOW STEP コマンドを使用すると現在のSTEPの省略時の修飾子を表示できます。
PF1-PF3を押して画面モードにすると,SET STEP NOSOURCEコマンドとSET MODE SCREENコマンドが指定されます。したがって,STEPコマンドの実行の結果またはブレークポイント, トレースポイント,ウォッチポイントが検出された結果作成された出力表示とDO 表示内ではソース・コードが表示されず, ソース表示による無駄を省くことができます。
OpenVMS VAXシステムでは,STEP/OVERコマンドはステップ実行ではなくFortran 実行時ライブライ・ルーチンを実行することがあります。詳細は, 『デバッガ説明書』を参照してください。
関連コマンド
DBG> SET STEP INSTRUCTION,NOSOURCEこのコマンドを使用すると,デバッガはSTEPコマンドを入力したときに次の命令まで実行します。STEP コマンドごとにソース・コード行を表示することはありません。
DBG> SET STEP LINE,INTO,NOSYSTEM,NOSHAREこのコマンドを使用すると,デバッガはSTEPコマンドを入力したときにプログラムの次の行まで実行してから, ユーザ空間にある呼び出されたルーチン内の命令だけをステップ実行します。 システム空間内のルーチンと共用可能イメージ内のルーチンは1 ステップとして実行されます。
タスキング・プログラム(マルチスレッド・プログラムとも呼ばれます)の1 つまたは複数のタスクの属性を変更します。
SET TASK [task-spec[, . . . ]]
%ACTIVE_TASK | GO,STEP,CALL,またはEXIT コマンドの実行時に実行されるタスク。 |
%CALLER_TASK | Adaプログラムにのみ適用される。accept 文の実行時に,そのaccept文に対応するエントリを呼び出したタスク。 |
%NEXT_TASK | デバッガのタスク・リスト中で可視タスクの次のタスク。タスクの順番は自由に決められますが, その順番は1回のプログラム実行の中で不変です。 |
%PREVIOUS_ TASK | デバッガのタスク・リスト中で可視タスクの前のタスク。 |
%VISIBLE_TASK | シンボル,レジスタ値,ルーチン呼び出し,ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタックとレジスタ・ セットを持つタスク。 |
ワイルドカード文字のアスタリスク(*)は使用できません。代わりに/ALL 修飾子を使用してください。/ALLまたは/TIME_SLICEを指定する場合, タスクは指定できません。タスクを指定しないか,/ALLを/ABORT, /[NO]HOLD,/PRIORITY,または/RESTOREとともに指定しないと,可視タスクが選択されます。
DEC Adaタスクの場合,指定されたタスクにAda強制終了文を実行することと同じであり, これらのタスクは異常として示されます。依存タスクにも終了のマークがつけられます。
DECthreadsスレッドの場合,次のコマンドを使用します。
PTHREAD tset -c thread-number
SET TASK/ACTIVEコマンドは,VAX上のDEC Adaでのみサポートされています。
DECthreadsプログラムまたはAlphaプログラム上のDEC Adaでは,次のコマンドのうちのいずれかを使用します。 クエリー型のアクションにはSET TASK/ACTIVEコマンドではなくSET TASK/VISIBLEコマンドを使用してください。 または,実行の制御を得るには,ブレークポイントを効果的な位置に配置します。
指定されたタスクを保留するかどうかを制御します。/HOLD修飾子は指定されたタスクを保留します。
タスクを保留すると,そのタスクをRUNNING状態にできなくなります。保留状態にあるタスクは, 他の状態に移行できます。たとえば,SUSPENDED 状態からREADY状態に変わることができます。
すでにRUNNING状態にあるタスク(アクティブ・タスク)は,RUNNING状態にあるかぎり実行を続けることができます。 実行は保留状態にあっても続けられます。 何らかの理由(タイム・スライスが使用できる場合,タイム・ スライス値を超えたなど)でRUNNING状態でなくなると,保留条件が解消されないかぎり,RUNNING 状態に戻ることはできません。
SET TASK/ACTIVEコマンドを使用すれば,タスクが保留されていても,保留条件を上書きし, タスクをRUNNING状態にできます。
/NOHOLD修飾子は,指定されたタスクの保留を解除します。
指定されたタスクの優先順位をnに設定します。ここで nは0から15までの10進整数です。これにより,実行中( たとえば,AdaランデブまたはDECthreads同期化の実行中) にあとで優先順位を変更できなくなるわけではありません。 この修飾子は,タスクのスケジューリング方法には影響を与えません。
指定されたタスクの優先順位を,作成されたときの優先順位に復元します。 タスクのスケジューリング方法には影響を与えません。
SET TASKコマンドは,可視タスクとアクティブ・タスクの設定,これらのタスクの実行の制御, タスク状態の変更を直接または間接的に行えるようにします。
タスクの現在の状態を調べるには,SHOW TASKコマンドを使用します。タスクは,RUNNING ,READY,SUSPENDED,TERMINATEDのいずれかの状態にあります。
関連コマンド
DBG> SET TASK/ACTIVE %TASK 3(イベント・ファシリティ= ADA)このコマンドは,タスク3(タスクID = 3) をアクティブ・タスクにします。
DBG> PTHREAD tset -a 3(イベント・ファシリティ= THREADS)このコマンドは,タスク3(タスクID = 3)をアクティブ・タスクにします。
DBG> SET TASK %NEXT_TASKこのコマンドは,デバッガのタスク・リスト中で次のタスクを可視タスクにします(/VISIBLE 修飾子は,SET TASKコマンドの省略時の修飾子です)。
DBG> SET TASK/HOLD/ALL DBG> SET TASK/ACTIVE %TASK 1 DBG> GO . . . DBG> SET TASK/ACTIVE %TASK 3 DBG> STEP . . .この例では,SET TASK/HOLD/ALLコマンドがアクティブ・タスク以外のすべてのタスクの状態を凍結します。 したがって,SET TASK/ACTIVEを必要なときだけ使用して(GO コマンドとSTEPコマンドとともに),1つまたは複数の指定されたタスクの動作を切り離して観察できます。
デバッガが画面やその他の出力を編集するときに使用する端末画面の高さと幅を設定します。
SET TERMINAL
このコマンドは,VT100,VT200またはVT300のシリーズの端末を使用する場合に便利です。 この場合,たいていは画面幅を80欄または132欄に設定できます。 また,ワークステーションではデバッガが使用するターミナル・ エミュレータ・ウィンドウのサイズを変更できるので,やはり便利です。
少なくとも1つの修飾子を指定しなければなりません。全部の修飾子を指定することも可能です。/PAGE 修飾子と/WIDTH修飾子には,それぞれ値が必要です。
SET TERMINALコマンドを入力すると,すべての画面ウィンドウ定義が,新しい画面サイズに合うように自動的に調整されます。 たとえば,RH1は, 画面の右上半分を表示するようにサイズを比例して変更します。
同様に,すべての"動的"表示ウィンドウは,相対的な比率を維持するように自動的に調整されます。 すべての標準ウィンドウは動的ですが, DISPLAY/NODYNAMICコマンドで参照した場合は例外です。その場合には, あとでSET TERMINALコマンドを実行した場合も,表示ウィンドウは現在のサイズのまま変化しません。 しかし,DISPLAYコマンドを使用すると,表示ウィンドウを再構成できます( また,BLUE-MINUSなどのキーパッド・キーの組み合わせを使用して, 定義済みのDISPLAYコマンドを入力することも可能です) 。
関連コマンド
DBG> SET TERMINAL/WIDTH:132このコマンドは,端末画面幅を132欄に設定することを指定します。
特定のクラスの命令または指定されたイベントの発生時に,アドレス式で示された記憶位置にトレースポイントを設定します。
SET TRACE [address-expression[, . . . ]] [WHEN(conditional-expression)] [DO(command[; . . . ])]
ワイルドカード文字のアスタリスク(*)は使用できません。また次の修飾子を指定する場合は, アドレス式は指定できません。
/MODIFY修飾子と/RETURN修飾子は,特定の種類のアドレス式に指定できます。
メモリ・アドレス,または値がシンボリック記憶位置でないアドレス式を指定する場合は, 示しているメモリ・バイトで命令が実際に始まっているかを(EXAMINE コマンドを使用して)チェックしてください。命令がこのバイトで始まっていないと, そのバイトを持つ命令を実行したときに実行時エラーが発生します。 値がシンボリック記憶位置でないアドレス式を指定してトレースポイントを設定しても, デバッガは指定された記憶位置が命令の開始位置を示しているかどうかをチェックしません。
VAXプロセッサの場合,CALLSルーチンとCALLG ルーチンは,エントリ・マスクで始まります。
イベント機能は,AdaルーチンまたはSCANルーチンを呼び出すプログラムまたはDECthreads サービスを使用するプログラムで使用できます。 現在のイベント機能および関連したイベント名を表示するには,SHOW EVENT_FACILITY コマンドを使用します。
プログラムが例外を発生すると,SET TRACE/EXCEPTIONコマンドの結果として, デバッガは例外を報告しその例外を再度シグナル通知します。その結果, アプリケーションで宣言した例外ハンドラを実行できます。
(VAXのみ)命令コードを1つまたは複数個指定すると,デバッガは,リスト内で指定したすべての命令コードをトレースします。
ベクタ命令を指定するとき,命令修飾子(/UNALIGNED_DATA,/VECTOR_ INSTRUCTION,/MODIFY,/0,または/1)と命令ニーモニックの両方をいれることはできません。
/INTO修飾子と/OVER修飾子も参照してください。
/INTOをこれらの修飾子といっしょに使用すると,デバッガは,呼び出されたルーチン内( 実行が現在中断されているルーチン内だけでなく)の指定された箇所をトレースします。/INTO 修飾子は省略時の設定であり,/OVER の反対です。
/INTOを使用する場合,/[NO]JSB,/[NO]SHARE,/[NO]SYSTEMの修飾子でトレース・ アクションをさらに修飾できます。
/JSB修飾子は,DIBOL以外のすべての言語における省略時の値です。これを指定すると, デバッガは,JSB命令またはCALL命令によって呼び出されるルーチン内にトレースポイントを設定します。/NOJSB 修飾子(DIBOLの省略時の設定) は,JSB命令によって呼び出されるルーチン内でトレースポイントを設定しないことを指定します。DIBOL の場合,アプリケーションで宣言したルーチンはCALL 命令によって呼び出され,DIBOL実行時ライブラリ・ ルーチンがJSB命令によって呼び出されます。
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をこれらの修飾子といっしょに使用すると,(呼び出されたルーチンではなく) 現在実行を中断しているルーチン内だけの指定された箇所をデバッガはトレースします。/OVER 修飾子は,/INTO (省略時の設定)の反対です。
VAXプロセッサの場合,この修飾子は,CALLS命令またはCALLG 命令で呼び出したルーチンにだけ指定できます。JSBルーチンでは使用できません。Alpha プロセッサの場合, この修飾子はどのルーチンにも指定できます。
address-expressionパラメータは,ルーチン内の命令アドレスです。単なるルーチン名の場合もあります。 この場合は,ルーチンの開始アドレスを指定します。 ただし,ルーチン内の別の場所を指定することもできます。 こうすると,特定のコード・パスを実行したあとに行われる復帰だけを調べることができます。
SET TRACE/RETURNコマンドでSET TRACEと同じアドレス式を指定すると, SET TRACEは取り消されます。
/SHARE修飾子を使用すると,デバッガは共用可能イメージ・ルーチン内でもその他のルーチンの場合と同様にトレースポイントを設定できます。/NOSHARE 修飾子を指定すると,共用可能イメージ内にはトレースポイントは設定されません。
/SYSTEM修飾子を指定すると,他のルーチンだけでなくシステム・ルーチン(P1 空間)内でもデバッガはトレースポイントを設定できます。 /NOSYSTEM修飾子を指定すると,システム・ルーチン内ではトレースポイントは設定されません。
プログラムの特定の記憶位置にトレースポイントを設定するには,SET TRACEコマンドでアドレス式を指定します。連続したソース行,命令クラス, またはイベントにトレースポイントを設定するには,SET TRACE コマンドとともに修飾子を指定します。通常はアドレス式か修飾子のどちらかを指定するだけでよく, 両方を指定する必要はありません。ただし,/EVENT と/RETURNの場合は両方指定しなければなりません。
/LINE修飾子を指定すると,各ソース・コード行ごとにトレースポイントが設定されます。
次の修飾子は命令クラスにトレースポイントを設定します。これらの修飾子と/LINE 句をいっしょに使用すると,デバッガはプログラムの実行中に各命令をトレースするので, 実行速度が著しく遅くなります。
次の修飾子は,イベント・クラスにトレースポイントを設定します。
次の修飾子は,ルーチンを呼び出したときに何が起こるかを決定します。
次の修飾子は,トレースポイントに達したときにどんな出力を表示するかを決定します。
次の修飾子は,トレースポイントのタイミングと期間を決定します。
プログラム記憶位置の内容の変更(通常は変数の値の変更)をモニタするには,/MODIFY 修飾子を使用します。
現在ブレークポイントとして使用されている記憶位置をトレースポイントとして設定すると, ブレークポイントは取り消されます。また,逆も同様です。
トレースポイントには,ユーザが定義するものと定義済みのものとがあります。 ユーザ定義のトレースポイントとは,ユーザがSET TRACEコマンドで明示的に設定したトレースポイントです。 定義済みのトレースポイントは, デバッグするプログラムの種類(Adaあるいはマルチプロセスなど)によって異なりますが, デバッガの起動時に自動的に設定されます。現在設定されているすべてのトレースポイントを表示するには,SHOW TRACE コマンドを使用します。 定義済みのトレースポイントは定義済みのものとして表示されます。
ユーザ定義トレースポイントと定義済みトレースポイントは,それぞれ別々に設定したり取り消したりします。 たとえば,1つの記憶位置またはイベントに, ユーザ定義トレースポイントと定義済みトレースポイントの両方を設定することができます。 ユーザ定義トレースポイントを取り消しても, 定義済みトレースポイントは影響を受けません。逆も同様です。
関連コマンド
DBG> SET TRACE SUB3このコマンドの場合,SUB3ルーチンが実行されるとルーチンの先頭をトレースします。
DBG> SET TRACE/BRANCH/CALLこのコマンドの場合,プログラム実行中に検出されたすべてのBRANCH命令とCALL 命令をトレースします。
DBG> SET TRACE/LINE/INTO/NOSHARE/NOSYSTEMこのコマンドの場合,各ソース行の先頭をトレースします。この行には, 呼び出されたルーチン(/INTO)内の行は含まれますが,共用可能イメージ・ ルーチン(/NOSHARE)またはシステム・ルーチン(/NOSYSTEM)内の行は含まれません。
DBG> SET TRACE/NOSOURCE TEST5\%LINE 14 WHEN (X .NE. 2) DO (EXAMINE Y)このコマンドの場合,Xが2ではないときTEST5モジュールの行14をトレースします。 トレースポイントではEXAMINE Yコマンドが実行されます。 /NOSOURCE修飾子が指定されているので,トレースポイントではソース・ コードは表示されません。WHEN句内の条件式の構文は言語固有です。
DBG> SET TRACE/INSTRUCTION WHEN (X .NE. 0)このコマンドの場合,Xがゼロでないときにトレースします。実行中に検出されたすべての命令で条件が調べられます。WHEN 句内の条件式の構文は言語固有です。
DBG> SET TRACE/SILENT SUB2 DO (SET WATCH K)このコマンドの場合,実行中にSUB2ルーチンの先頭をトレースします。トレースポイントでは,DO 句によって変数Kにウォッチポイントが設定されます。/SILENT 修飾子が指定されているので,トレースポイントを検出したとき"trace . . . " メッセージとソース・コードは表示されません。これは, 非静的変数(スタックまたはレジスタ)にウォッチポイントを設定する便利な方法です。 非静的変数は,その定義ルーチン(この例ではSUB2)がアクティブのとき( 呼び出しスタック上に存在するとき)だけ定義されます。
DBG> SET TRACE/RETURN ROUT4 DO (EXAMINE X)このコマンドの場合,デバッガはROUT4ルーチンの復帰命令を(すなわち, 呼び出す側のルーチンに実行が戻る直前に)トレースします。トレースポイントでは,DO 句がEXAMINE Xコマンドを実行します。これは,非静的変数の定義ルーチンの実行が終了する直前にその変数の値を得るのに便利です。
DBG> SET TRACE/EVENT=TERMINATEDこのコマンドの場合,いずれかのタスクがTERMINATED状態に移行するとその時点をトレースします。
シンボリック名がない(および,そのために関連したコンパイラ生成型を持たない) プログラム記憶位置に関連した省略時の型を設定します。 /OVERRIDEとともに使用すると,すべての記憶位置に関連した省略時の型を設定し, コンパイラ生成型を上書きします。
SET TYPE 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のみ)省略時の型を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のみ)省略時の型をIEEE S 浮動小数点数(単精度,4バイト長)に設定します。 |
LONG_LONG_FLOAT | (Alphaのみ)省略時の型をIEEE T 浮動小数点数(倍精度,8バイト長)に設定します。 |
LONGWORD | 省略時の型をロングワード整数(4 バイト長)に設定します。これは,シンボリック名がない( コンパイラ生成型を持たない)プログラム記憶位置の省略時の型です。 |
OCTAWORD | 省略時の型をオクタワード整数(16 バイト長)に設定します。 |
PACKED:n | 省略時の型をパック10 進数に設定します。nの値は10進数字です。 各桁とも1ニブル(4ビット)を占めます。 |
QUADWORD | 省略時の型をクォドワード整数(8 バイト長)に設定します。これは,64ビットのアプリケーションのデバッグには使用しないでください |
TYPE=(expression) | 省略時の型を expressionが示す型(プログラム内で宣言された変数またはデータ型の名前) に設定します。これを指定すると,アプリケーションで宣言した型を指定できます。 |
S_ FLOAT | (Alphaのみ) LONG_FLOATと同じです。 |
T_FLOAT | (Alphaのみ) LONG_LONG_FLOAT と同じです。 |
WORD | 省略時の型をワード整数(2 バイト長)に設定します。 |
X_FLOAT | (Alphaのみ) EXTENDED_FLOATと同じです。 |
デバッガは,シンボリック・アドレス式(プログラム内で宣言したシンボリック名) に対応したコンパイラ生成型を認識し,これらの記憶位置の内容を解釈して表示します。 シンボリック名を持たない(したがって関連したコンパイラ生成型を持たない) プログラム記憶位置の場合,省略時の型はどの言語でもロングワード整数で,32 ビトのアプリケーションのデバッグにも使用できます。
Alphaシステムでは,64ビットのアドレス空間を利用するアプリケーションをデバッグするには,SET TYPE QUADWORD コマンドを使用してください。
SET TYPEコマンドを使用すると,シンボリック名を持たない記憶位置の省略時の型を変更できます。 また,SET TYPE/OVERRIDEコマンドを使用すると, シンボリック名の有無にかかわらずすべてのプログラム記憶位置の省略時の型を設定できます。
EXAMINEコマンドとDEPOSITコマンドには,任意のプログラム記憶位置の型を1 つのコマンドの実行中に上書きできる型修飾子(/ASCII, /BYTE,/G_FLOATなど)があります。
関連コマンド
DBG> SET TYPE ASCII:8このコマンドは,未定義のプログラム記憶位置の省略時の型として8バイトのASCII 文字列を設定します。
DBG> SET TYPE/OVERRIDE LONGWORDこのコマンドは,未定義のプログラム記憶位置とコンパイラ生成型を持つプログラム記憶位置の両方の省略時の型としてロングワード整数を設定します。
DBG> SET TYPE D_FLOATこのコマンドは,未定義のプログラム記憶位置の省略時の型としてD浮動小数点数を指定します。
DBG> SET TYPE TYPE=(S_ARRAY)このコマンドは,未定義のプログラム記憶位置の省略時の型としてS_ ARRAY変数を設定します。
デバッガ・ベクタ・モード・オプションを許可したり,禁止したりできます。
VAXベクタ化されたプログラムにのみ適用されます。
SET VECTOR_MODE vector-mode-option
SYNCHRONIZED | ベクタ命令が実行されたら必ずスカラ型プロセッサとベクタ型プロセッサをデバッガが自動的に同期化することを指定します。
具体的には,デバッガはベクタ命令を実行するたびにそのあとでSYNC
命令を実行し,メモリにアクセスするベクタ命令を実行するたびにそのあとでMSYNC
命令を実行します。この結果,同期化されるベクタ命令に関連したすべての処理が終了します。
SET VECTOR_MODE SYNCHRONIZEDコマンドを実行すると,SYNCコマンドやMSYNC コマンドがすぐに実行されるわけではありません。すぐに同期化するには,SYNCHRONIZE VECTOR_MODE コマンドを使用します。 |
NOSYNCHRONIZED | 省略時の設定。デバッガの内部的目的以外では, スカラ型プロセッサとベクタ型プロセッサ間の同期化をデバッガが強制しないよう指定します。 その結果,同期化がプログラムによって完全に制御され, プログラムはデバッガの制御下にないかのように実行されます。 |
関連コマンド
DBG> SET VECTOR_MODE SYNCHRONIZEDこのコマンドを使用すると,ベクタ命令が実行されるたびに,そのあとでデバッガがスカラ型プロセッサとベクタ型プロセッサ間を同期化させます。
DBG> SHOW VECTOR_MODE Vector mode is nonsynchronized DBG> SET VECTOR_MODE SYNCHRONIZED 【1】 DBG> SHOW VECTOR_MODE Vector mode is synchronized DBG> STEP 【2】 stepped to .MAIN.\SUB\%LINE 99 99: VVDIVD V1,V0,V2 DBG> STEP 【3】 %SYSTEM-F-VARITH, vector arithmetic fault, summary=00000002, mask=00000004, PC=000002E1, PSL=03C00010 break on unhandled exception preceding .MAIN.\SUB\%LINE 100 100: CLRL R0 DBG>次の番号は上の例の番号に対応しています。
アドレス式で示された記憶位置にウォッチポイントを設定します。
SET WATCH address-expression[, . . . ] [WHEN(conditional-expression)] [DO(command[; . . . ])]
ワイルドカード文字のアスタリスク(*)は使用できません。
高級言語の場合,SET WATCHコマンドで指定するアドレス式はたいてい変数です。 コンパイラ生成型に対応した絶対メモリ・アドレスを指定すると, デバッガはそのアドレスをシンボル化し,その型に対応したバイト長を使用して, ウォッチポイント記憶位置のバイト長を決定します。デバッガがコンパイラ生成型と関連づけることができない絶対メモリ・ アドレスが指定されると, デバッガはアドレス式が示すバイトで始まる4バイト(省略時の設定) のメモリをモニタします。ただし,この長さは,入力をWORD (SET TYPE WORD,省略時の長さを2バイトに変更します)かBYTE (SET TYPE BYTE,省略時の長さを1バイトに変更します)に設定すれば変更できます。 SET TYPE LONGWORDを指定すると,省略時の長さは4バイトに戻ります。
集合体(すなわち,配列全体またはレコード全体)にウォッチポイントを設定できます。 この場合,配列またはレコードのいずれかの要素が変化すると, 配列またはレコードに設定したウォッチポイントが検出されます。このため, 個々の配列要素やレコードの構成要素にウォッチポイントを設定する必要はありません。 ただし,可変レコードには集合体のウォッチポイントを設定できないことに注意してください。
レコードの構成要素,個々の配列要素,配列断面(ある範囲の配列要素)にもウォッチポイントを設定できます。 この場合,配列断面内のいずれかの要素が変化すればウォッチポイントが検出されます。 ウォッチポイントは, 現在の言語の構文に従って設定します。
次の修飾子は,ウォッチポイントに達したときにどんな出力を表示するのかを決定します。
次の修飾子は,ウォッチポイントのタイミングと期間を決定します。
次の修飾子は非静的変数にだけ指定します。
次の修飾子は,デバッガによる変数が静的か非静的かの判定を上書きするのに使用します。
ウォッチポイントの設定方法は変数が静的か非静的かで異なります。
静的変数はプログラムの実行中ずっと同じメモリ・アドレスに関連づけられています。 したがって,実行中は静的変数にウォッチポイントをずっと設定しておくことができます。
非静的変数は呼び出しスタックかレジスタに割り当てられ,その定義ルーチンがアクティブである場合だけ値を持ちます( 呼び出しスタック上に存在します) 。このため,定義ルーチン(定義ルーチンが呼び出した任意のルーチンを含む) の有効範囲内で実行が現在中断しているときだけ,非静的変数にウォッチポイントを設定できます。 定義ルーチンから制御が戻ると, ウォッチポイントは取り消されます。非静的変数を使用した場合,デバッガは, すべての命令をトレースしてウォッチされた変数または位置に変更があるかどうかを検出します。
静的ウォッチポイントと非静的ウォッチポイントは実行速度も異なります。 静的変数をウォッチする場合,デバッガはその変数を含むページを書き込み保護にします。 プログラムがそのページに書き込もうとすると,アクセス違反が発生しデバッガが例外を処理し, ウォッチしている変数の内容が変更されたかどうかを調べます。 そのページへの書き込みが発生しないかぎりプログラムは通常の速度で実行します。
非静的変数をウォッチするには,変数の定義ルーチン内の各命令をトレースし, 各命令実行後に変数の値を調べます。このため,実行が極めて遅くなるので, 非静的ウォッチポイントを設定すると,メッセージが発行されます。
次に説明するように,/[NO]STATIC,/INTO,/OVERを使用すれば,変数をウォッチするときに実行速度やその他の要因をある程度制御できます。
デバッガは,変数の割り当てを調べて,静的か非静的かを判断します。通常, 静的変数はP0空間(0から3FFFFFFF,16進数)に,非静的変数はP1空間(40000000 から7FFFFFFF)またはレジスタに割り当てられます。定義ルーチンの有効範囲内で現在実行が中断していないときに,P1 空間またはレジスタに割り当てられた変数にウォッチポイントを設定しようとすると, デバッガは警告を出力します。
/[NO]STATIC修飾子を指定すると,この省略時の動作を上書きできます。 たとえば,P1空間に非スタック記憶を割り当てた場合,その記憶領域に割り当てられた変数にウォッチポイントを設定するときには/STATIC を使用します。 こうすれば,デバッガは各命令をトレースする代わりにもっと高速の書き込み保護による記憶位置のウォッチ方法を使用できます。 たとえば, 逆にP0空間にユーザの呼び出しスタックを割り当てた場合,呼び出しスタックに割り当てられた変数にウォッチポイントを設定するときには,/NOSTATIC を使用します。こうすれば,デバッガはウォッチポイントを非静的ウォッチポイントとして扱うことができます。
/INTOおよび/OVERを使用すれば,呼び出されたルーチン内の非静的ウォッチポイントの実行速度も制御できます。
AlphaおよびVAXプロセッサの両方で,静的ウォッチポイントと非静的ウォッチポイントの両方が使用できます。 静的ウォッチポイントを使用した場合, デバッガは,ウォッチする変数が保存されているメモリのページを書き込み保護します。 このため,デバッガのシステム・サービス割り込み(SSI) のためでなければ,静的ウォッチポイントは,システム・サービス自体とインタフェースをとります。
静的ウォッチポイントが有効な場合,システム・サービス割り込みを通して, システム・サービス呼び出しの前にデバッガは,静的ウォッチポイント, 非同期トラップ(AST),およびスレッド・スイッチを非アクティブにします。 デバッガは,システム・サービス呼び出しが完了するとすぐに, ウォッチポイント,使用可能なAST,スレッド・スイッチを元の状態に戻し, 最後にウォッチポイントのヒットをチェックします。この動作は,ウォッチポイントが非アクティブにされても, システム・サービスが通常どおりに動作し( 書き込み保護のページなし),ASTコードまたは異なるスレッドが, ウォッチポイントする位置に変更の可能性がないように設計されています。 お使いのアプリケーションでASTが使用可能かどうかをテストする場合などは, この動作に気をつけてください。
システム・サービスがsystem service interception (SSI)機能(OpenVMS VAXシステムではDBGSSISHR,OpenVMS AlphaシステムではSYS$SSISHR)でサポートされない場合, アクティブな静的ウォッチポイントが検出されると, システム・サービスは異常終了し,ほとんどの場合,ACCVIO状態になります。SYS$PUBLIC_VECTORS に存在しないシステム・サービスはSSI でサポートされません。これにはユーザ作成システム・サービス(UWSS) や,$MOUNTなどのロード可能なシステム・サービスも含まれます。
静的ウォッチポイントがアクティブな場合には,デバッガはウォッチされる変数を含むページを書き込み禁止にします。SSI でサポートされないシステム・ サービス呼び出しは,ユーザ・メモリのそのページに書き込もうとしたときに, 異常終了します。
この問題を回避するには,次のいずれかの処理を実行してください。
システム・サービス・ルーチンの途中でウォッチしている記憶位置が変化した場合には, 通常と同様に,ウォッチポイントが発生したことが通知されます。 非常にまれですが,スタックでユーザ・プログラムのフレームの上に1 つ以上のデバッガ・フレームが表示されることがあります。この問題を回避するには,1 つ以上のSTEP/RETURNコマンドを入力して,プログラムに戻ります。
省略時の設定では,system service interception (SSI)はオンですが, Alphaプロセッサの場合のみ,次のコマンドを使用して,デバッグ・ セッションの前にインターセプションを無効に設定できます。
$ DEFINE SSI$AUTO_ACTIVATE OFF
system service interception (SSI)を再度有効にするには,次のいずれかのコマンドを使用します。
$ DEFINE SSI$AUTO_ACTIVATE ON $ DEASSIGN SSI$AUTO_ACTIVATE
Alphaプロセッサでは,グローバル・セクションの変数または任意のプログラム記憶位置にウォッチポイントを設定できます。 グローバル・セクションとは,マルチプロセス・プログラムのすべてのプロセスで共用されるメモリ領域です。 グローバル・セクション内の記憶位置に設定されたウォッチポイント( グローバル・セクション・ウォッチポイント) は,プロセスがその記憶位置の内容を変更したときに起動されます。
グローバル・セクション・ウォッチポイントは,静的変数にウォッチポイントを設定するときと同じ方法で設定します。 しかし,デバッガがグローバル・ セクション・ウォッチポイントをモニタする方法により,次の点に注意する必要があります。 ウォッチポイントを配列またはレコードに設定する場合には,SET WATCH コマンドを使用して構造体全体を指定するより, 個々の要素を指定する方が性能を向上できます。
グローバル・セクションにまだマッピングされていない記憶位置にウォッチポイントを設定すると, そのウォッチポイントは通常の静的ウォッチポイントとして取り扱われます。 そのあとで記憶位置がグローバル・セクションにマッピングされると, ウォッチポイントは自動的にグローバル・セクション・ ウォッチポイントとして取り扱われるようになり,情報メッセージが出力されます。 その後,ウォッチポイントはマルチプロセス・プログラムの各プロセスから確認できます。
関連コマンド
DBG> SET WATCH MAXCOUNTこのコマンドは変数MAXCOUNTにウォッチポイントを設定します。
DBG> SET WATCH ARR DBG> GO . . . watch of SUBR\ARR at SUBR\%LINE 12+8 old value: (1): 7 (2): 12 (3): 3 new value: (1): 7 (2): 12 (3): 28 break at SUBR\%LINE 14 DBG>この例では,SET WATCHコマンドが3つの要素を持つ整数の配列ARRにウォッチポイントを設定します。GO コマンドで実行を再開します。いずれかの配列要素の内容が変化するとウォッチポイントが検出されます。 この例では,3 番目の要素が変化しています。
DBG> SET WATCH ARR(3)このコマンドはARR配列(Fortran配列構文)の要素3にウォッチポイントを設定します。 要素3が変化するとウォッチポイントが検出されます。
DBG> SET WATCH P_ARR[3:5]このコマンドは,P_ARR配列(Pascal配列構文)の要素3〜5で構成される配列断面にウォッチポイントを設定します。 これらの要素のどれかが変化するとウォッチポイントが検出されます。
DBG> SET WATCH P_ARR[3]:P_ARR[5]このコマンドは,P_ARR配列の要素3〜5のそれぞれに,個別にウォッチポイントを設定します(Pascal 配列構文)。ターゲット要素が変化すると,各ウォッチポイントが起動されます。
DBG> SET TRACE/SILENT SUB2 DO (SET WATCH K)この例では,変数Kは非静的変数であり,その定義ルーチンSUB2(スタック上に存在します) がアクティブのときだけ定義されます。SET TRACEはSUB2 にトレースポイントを設定します。実行中にトレースポイントが検出されると,DO 句はKにウォッチポイントを設定します。SUB2ルーチンから制御が戻るとウォッチポイントは取り消されます。/SILENT 修飾子が指定されているので, トレースポイントを検出したときの"trace . . . "メッセージとソース・ コードは表示されません。
DBG_1> SET WATCH ARR(1) DBG_1> SHOW WATCH watchpoint of PPL3\ARR(1) DBG_1> GO %DEBUG-I-WATVARNOWGBL, watched variable PPL3\ARR(1) has been remapped to a global section predefined trace on activation at routine PPL3 in %PROCESS_NUMBER 2 predefined trace on activation at routine PPL3 in %PROCESS_NUMBER 3 watch of PPL3\ARR(1) at PPL3\%LINE 93 in %PROCESS_NUMBER 2 93: ARR(1) = INDEX old value: 0 new value: 1 break at PPL3\%LINE 94 in %PROCESS_NUMBER 2 94: ARR(I) = I DBG_2> DO (SHOW WATCH) For %PROCESS_NUMBER 1 watchpoint of PPL3\ARR(1) [global-section watchpoint] For %PROCESS_NUMBER 2 watchpoint of PPL3\ARR(1) [global-section watchpoint] For %PROCESS_NUMBER 3 watchpoint of PPL3\ARR(1) [global-section watchpoint] DBG_2>このグローバル・セクション・ウォッチポイントのVAX例では,SET WATCH コマンドがARR配列の要素1にウォッチポイントを設定します。ARRはグローバル・ セクションにマップされていないので,SHOW WATCHコマンドはこのウォッチポイントを従来の静的ウォッチポイントとして識別します。
GOコマンドで実行を再開すると,ARRは再度グローバル・セクションにマップされます。 ウォッチポイントは自動的にグローバル・セクション・ ウォッチポイントとして扱われます。
プロセス2と3がデバッガの制御下に置かれると,ウォッチポイントはプロセス2 で検出され,実行に割り込みがかけられます。 この時点で,SHOW WATCHコマンドはウォッチポイントが各プロセスで設定されていることを確認します。
画面ウィンドウ定義を作成します。
SET WINDOW window-name AT (start-line,line-count [,start-column,column-count])
組み込みシンボル%PAGEと%WIDTHを使用した式でウィンドウ領域を指定することもできます。
SET WINDOWコマンドで定義したウィンドウの名前をDISPLAYコマンドで使用して画面上の表示位置を指定することもできます。
ウィンドウ定義は動的に行われます。すなわち,SET TERMINALコマンドで端末の幅と高さを変更すると, それに比例してウィンドウのサイズも拡大または縮小します。
関連コマンド
DBG> SET WINDOW ONELINE AT (1,1)このコマンドは画面の最上部にONELINEという名前のウィンドウを定義します。 このウィンドウの高さは1行であり,幅は省略時の設定によって画面の幅に設定されます。
DBG> SET WINDOW MIDDLE AT (9,4,30,20)このコマンドは画面の中央にMIDDLEという名前のウィンドウを定義します。 このウィンドウは行9から開始して4行の高さであり,欄30から開始して20 欄の幅に設定されます。
DBG> SET WINDOW FLEX AT (%PAGE/4,%PAGE/2,%WIDTH/4,%WIDTH/2)このコマンドは画面の中央を付近にFLEXという名前のウィンドウを定義します。 このウィンドウは現在の画面の高さ(%PAGE)と幅(%WIDTH)に定義されます。
デバッガ・コマンドの実行を強制終了するか,またはプログラムの実行に割り込みをかける機能として現在定義されているCtrl キー・シーケンスを示します。
SHOW ABORT_KEY
関連コマンド
DBG> SHOW ABORT_KEY Abort Command Key is CTRL_C DBG> SET ABORT_KEY = CTRL_P DBG> SHOW ABORT_KEY Abort Command Key is CTRL_P DBG>この例では,最初のSHOW ABORT_KEYコマンドは省略時の強制終了コマンドのキー・ シーケンスであるCtrl/Cを示します。SET ABORT_KEY = CTRL_Pコマンドは強制終了コマンド機能をCtrl/P に割り当て,2番目のSHOW ABORT_ KEYコマンドがそれを確認します。
AST (asynchronous system traps) の実行要求が許可されているか,禁止されているかを示します。
SHOW AST
関連コマンド
DBG> SHOW AST ASTs are enabled DBG> DISABLE AST DBG> SHOW AST ASTs are disabled DBG>SHOW ASTコマンドはASTの実行要求が許可されているかどうかを示します。
SET ATSIGNコマンドで設定した省略時のファイル指定を示します。デバッガは@ ( 実行プロシージャ)コマンドの処理中にこのファイル指定を使用します。
SHOW ATSIGN
DBG> SHOW ATSIGN No indirect command file default in effect, using DEBUG.COM DBG>この例は,SET ATSIGNコマンドを使用していなかった場合,デバッガがコマンド・ プロシージャの省略時のファイル指定としてSYS$DISK:[]DEBUG.COM を使用することを示します。
DBG> SET ATSIGN USER:[JONES.DEBUG].DBG DBG> SHOW ATSIGN Indirect command file default is USER:[JONES.DEBUG].DBG DBG>この例では,SHOW ATSIGNコマンドはコマンド・プロシージャの省略時のファイル指定を示しています。 それは以前にSET ATSIGNコマンドで設定されたものです。
ブレークポイントに関する情報を表示します。
SHOW BREAK
省略時の設定では,SHOW BREAKはユーザ定義ブレークポイントと定義済みブレークポイントの両方( ただし,存在する場合)に関する情報を表示します。 これはSHOW BREAK/USER/PREDEFINEDコマンドを入力した場合と同じです。 ユーザ定義ブレークポイントはSET BREAKコマンドで設定されます。 定義済みブレークポイントは,デバッガを起動すると自動的に設定され, デバッグの対象になっているプログラムの種類によって異なります。
SET BREAK/AFTER:nを使用してブレークポイントを設定した場合,SHOW BREAK コマンドは10進整数nの現在の値,つまり最初に指定された整数値から, ブレークポイント記憶位置に到達するたびに1 を引いた値を表示します(デバッガはnの値が0になるまでブレークポイント記憶位置に到達するたびに nを減少させていきます。0 になると,デバッガはブレーク動作を取ります)。
Alphaシステムの場合,ブレークが命令の特定のクラスにあっても,SHOW BREAKコマンドは,個々の命令(SET BREAK/CALLまたはSET BREAK/RETURNと同様) は表示しません。
関連コマンド
DBG> SHOW BREAK breakpoint at SUB1\LOOP breakpoint at MAIN\MAIN+1F do (EX SUB1\D ; EX/SYMBOLIC PSL; GO) breakpoint at routine SUB2\SUB2 /after: 2 DBG>SHOW BREAKコマンドは現在設定されているすべてのブレークポイントを示します。 この例は,実行がそれぞれSUB1\LOOP,MAIN\MAIN,SUB2\SUB2に到達すると必ず検出されるユーザ定義ブレークポイントを示します。
DBG> SHOW BREAK/PREDEFINED predefined breakpoint on Ada event "DEPENDENTS_EXCEPTION" for any value predefined breakpoint on Ada event "EXCEPTION_TERMINATED" for any value DBG>このコマンドは現在設定されている定義済みブレークポイントを示します。 この例では,2つの定義済みブレークポイントが表示されていて,その2 つはAdaタスキング例外イベントに対応しています。これらのブレークポイントはすべてのAda プログラムに対してとAdaモジュールにリンクされている混合言語プログラムに対して自動的にデバッガによって設定されます。
現在アクティブなルーチン呼び出しを示します。
SHOW CALLS [integer]
SHOW CALLSは最新の呼び出しを先頭として,呼び出しスタック上の呼び出しフレーム1 つにつき1行の情報を表示します。最上行は現在実行中のルーチンを示し,2 行目はその呼び出し元,3行目は呼び出し元の呼び出し元を示すというようになります。
プログラムにルーチン呼び出しがない場合でも,SHOW CALLSコマンドはアクティブな呼び出しを表示します。 これは,最初に起動されるとき,プログラムにはそのプログラム用のスタック・ フレームが作成されるためです。 したがって,SHOW CALLSがアクティブな呼び出しを表示しない場合, その原因はプログラムが終了しているか,呼び出しスタックが破損しているかのいずれかです。
VAXプロセッサでは,ルーチン呼び出しの手順は呼び出しスタック上の呼び出しフレームの手順に対応します。 プログラムの実行時にルーチンへの呼び出しが行われると, 必ずオペレーティング・ システムは呼び出しスタック上に別の呼び出しフレームを作成します。 各呼び出しフレームは呼び出し元ルーチンに関する情報,たとえば, SHOW CALLSコマンドでモジュールとルーチンの情報をシンボル化できるようにするPC 値を格納します。
Alphaプロセッサでは,ルーチン呼び出しは, スタック・フレーム・プロシージャ(スタック上に呼び出しフレームが作成される) ,レジスタ・フレーム・プロシージャ(呼び出しフレームがレジスタ・ セットに格納される),空フレーム・プロシージャ(呼び出しフレームのない) となる可能性があります。SHOW CALLSは,1行の情報を3つのプロシージャすべてに提供します。 スタック・フレーム・プロシージャ,レジスタ・ フレーム・プロシージャ,および空フレーム・プロシージャです( 次のAlpha例を参照)。
SHOW CALLSが示す行ごとに次の情報が提供されます。
VAXプロセッサでは,PC値は直前のシンボル値( たとえばルーチン)を基準としたメモリ・アドレスとして示され, さらに絶対アドレスとしても示されます。Alpha プロセッサでは,PCはモジュール内の先頭コード・アドレスを基準としたメモリ・ アドレスとして示され,さらに絶対アドレスとしても示されます。
Alphaプロセッサでは,SHOW CALLSコマンドの出力には, プログラムに関連付けられたユーザ呼び出しフレームの他に, システム呼び出しフレームも含まれることがあります。システム呼び出しフレームが含まれるのは, 次の場合です。
システム呼び出しフレームが表示されても,問題を示すわけではありません。
関連コマンド
DBG> SHOW CALLS module name routine name line rel PC abs PC SUB2 SUB2 00000002 0000085A *SUB1 SUB1 5 00000014 00000854 *MAIN MAIN 10 0000002C 0000082C DBG>このコマンドはVAXシステム上の現在アクティブなプロシージャ呼び出しの手順に関する情報を表示します。
DBG> SHOW CALLS module name routine name line rel PC abs PC *MAIN FFFF 31 00000000000002B8 00000000000203C4 -the above appears to be a null frame in the same scope as the frame below *MAIN MAIN 13 00000000000000A8 00000000000200A8 0000000000000000 FFFFFFFF8255A1F8この例は,Alphaシステム上にあります。ルーチン・セクションのプロローグおよびエピローグが空フレームとなるデバッガに表示されることに注意してください。 フレーム・ポインタ(FP)内の変化前のプロローグ部分およびフレーム・ ポインタ(FP)の回復後のエピローグ部分は,それぞれ空フレームのように見えるため, 空フレームと報告されます。
DEFINEコマンドに対して現在有効になっている省略時の値(/ADDRESS, /COMMAND,/PROCESS_GROUP,または/VALUE)を指定します。
SHOW DEFINE
DEFINEコマンドで定義されたシンボルを示すには,SHOW SYMBOL/DEFINED コマンドを使用します。
関連コマンド
DBG> SHOW DEFINE Current setting is: DEFINE/ADDRESS DBG>このコマンドはDEFINEコマンドがアドレスによって定義されるように設定されていることを通知します。
1つまたは複数の既存の画面ディスプレイを示します。
SHOW DISPLAY [display-name[, . . . ]]
/SUFFIX修飾子は,ディスプレイ定義またはディスプレイ定義に関連したキー・ 定義を指定する場合のコマンド・プロシージャで主に使用されます。
process-identifier-typeには次のいずれかのキー・ワードを指定できます。
PROCESS_NAME | ディスプレイ名の後ろにプロセス名が付きます。 |
PROCESS_ NUMBER | ディスプレイ名の後ろにプロセス番号(SHOW PROCESSコマンドの実行で表示される番号)が付きます。 |
PROCESS_PID | ディスプレイ名の後ろにプロセス識別子(PID) が付きます。 |
/SUFFIXのあとにprocess-identifier-typeキー・ワードを指定しないと, プロンプトの接尾辞がディスプレイ名の接尾辞の省略時の値として使用されます(SET PROMPT/SUFFIX コマンドを参照してください) 。
1つのディスプレイにつき,SHOW DISPLAYコマンドはその名前,最大サイズ, 画面ウィンドウ,表示対象(デバッグ・コマンド・リストも含めて)をリストします。 また,ディスプレイをペーストボードから削除するか,動的なものにするか( 画面サイズがSET TERMINALコマンドで変更された場合に, 動的ディスプレイは自動的にそのウィンドウ寸法を調整する)も示します。
関連コマンド
DBG> SHOW DISPLAY display SRC at H1, size = 64, dynamic kind = SOURCE (EXAMINE/SOURCE .%SOURCE_SCOPE\%PC) display INST at H1, size = 64, removed, dynamic kind = INSTRUCTION (EXAMINE/INSTRUCTION .0\%PC) display REG at RH1, size = 64, removed, dynamic, kind = REGISTER display OUT at S45, size = 100, dynamic, kind = OUTPUT display EXSUM at Q3, size = 64, dynamic, kind = DO (EXAMINE SUM) display PROMPT at S6, size = 64, dynamic, kind = PROGRAM DBG>SHOW DISPLAYコマンドは現在定義されているディスプレイをすべてリストします。 この例では,ディスプレイの中には,定義済みディスプレイが5 つ(SRC,INST,REG,OUT,PROMPT)とユーザ定義DOディスプレイのEXSUMが含まれています。 ディスプレイINSTとREGはディスプレイ・ペーストボードから削除されます。 それらを画面上に表示するにはDISPLAYコマンドを使用しなければなりません。
SET EDITORコマンドで設定された,EDITコマンドが取る処置を示します。
SHOW EDITOR
DBG> SHOW EDITOR The editor is SPAWNed, with command line "EDT/START_POSITION=(n,1)" DBG>この例では,EDITコマンドはサブプロセスでEDTエディタを作成します。 コマンド行に付けられた/START_POSITION修飾子は,初期状態では編集カーソルをデバッガの現在のソース表示の中央の行の先頭に置くことを表します。
DBG> SET EDITOR/CALLABLE_TPU DBG> SHOW EDITOR The editor is CALLABLE_TPU, with command line "TPU" DBG>この例では,SHOW EDITORコマンドはEDITコマンドがDEC Text Processing ユーティリティ(DECTPU)の呼び出し可能バージョンを起動することを表します。 編集カーソルは初期状態ではソース行1の先頭に置かれます。
現在のイベント機能と対応するイベント名を示します。
イベント機能はAdaルーチンを呼び出すプログラムか,またはDECthreadsサービスを使用するプログラムの場合に使用できます。VAX プロセッサでは,イベント機能はSCAN ルーチンを呼び出すプログラムの場合にも使用できます
SHOW EVENT_FACILITY
SHOW EVENT_FACILITYコマンドは現在のイベント機能に対応するイベント名を示します。 それらのイベント名は(SET,CANCEL) BREAK/EVENTコマンドと(SET,CANCEL) TRACE/EVENT コマンドで指定できるキーワードです。
関連コマンド
DBG> SHOW EVENT_FACILITY event facility is THREADS . . .このコマンドは現在のイベント機能がTHREADS(DECthreads)であることを示し, それに対応する,SET BREAK /EVENTコマンドまたはTRACE/EVENTコマンドで使用できるイベント名をリストします。
プログラムで宣言されている終了ハンドラを示します。
SHOW EXIT_HANDLERS
DBG> SHOW EXIT_HANDLERS exit handler at STACKS\CLEANUP DBG>このコマンドは終了ハンドラ・ルーチンのCLEANUPを示します。CLEANUPはモジュールSTACKS で宣言されています。
実行中のプログラムの一部になっている1つまたは複数のイメージに関する情報を表示します。
SHOW IMAGE [image-name]
SHOW IMAGEは/RESIDENT修飾子を使用してインストールされているイメージのメモリ範囲すべてを表示するわけではありません。 代わりに,このコマンドはプロセス・ データ・リージョンだけを表示します。
関連コマンド
DBG> SHOW IMAGE SHARE* image name set base address end address *SHARE yes 00000200 00000FFF SHARE1 no 00001000 000017FF SHARE2 yes 00018C00 000191FF SHARE3 no 00019200 000195FF SHARE4 no 00019600 0001B7FF total images: 5 bytes allocated: 33032 DBG>このSHOW IMAGEコマンドは名前がSHAREで始まり,プログラムに対応づけられているイメージすべてを示します。SHARE とSHARE2のイメージは設定されています。 アスタリスク(*)はSHAREを現在のイメージとして示します。
デバッガの定義済みキー定義とDEFINE/KEYコマンドで作成されたキー定義を表示します。
SHOW KEY [key-name]
キー名 | LK201キーボード | VT100型 | VT52型 |
---|---|---|---|
PF1 | PF1 | PF1 | Blue |
PF2 | PF2 | PF2 | Red |
PF3 | PF3 | PF3 | Black |
PF4 | PF4 | PF4 | |
KP0-KP9 | キーパッド0〜9 | キーパッド0〜9 | キーパッド0〜9 |
PERIOD | キーパッドのピリオド(.) | キーパッドのピリオド(.) | |
COMMA | キーパッドのコンマ(,) | キーパッドのコンマ(,) | |
MINUS | キーパッドのマイナス(-) | キーパッドのマイナス(-) | |
MINUS | キーパッドのマイナス(-) | キーパッドのマイナス(-) | |
ENTER | Enter | ENTER | ENTER |
E1 | Find | ||
E2 | Insert Here | ||
E3 | Remove | ||
E4 | Select | ||
E5 | Prev Screen | ||
E6 | Next Screen | ||
HELP | Help | ||
DO | Do | ||
F6-F20 | F6-F20 |
省略時の設定では,現在のキー状態はDEFAULT状態です。SET KEY/STATE コマンドを使用するか,または状態を変更するキー(つまり,DEFINE/KEY /LOCK_STATEまたは/SET_STATEで定義されたキー)を押すことにより現在の状態を変更できます。
関連コマンド
DBG> SHOW KEY/ALLこのコマンドは現在の状態に対するすべてのキー定義を表示します。
DBG> SHOW KEY/STATE=BLUE KP8 GOLD keypad definitions: KP8 = "Scroll/Top" (noecho,terminate,nolock) DBG>このコマンドはBLUE状態のキーパッド・キー8の定義を表示します。
DBG> SHOW KEY/BRIEF KP8 DEFAULT keypad definitions: KP8 = "Scroll/Up" DBG>このコマンドは現在の状態のキーパッド・キー8の定義を表示します。
DBG> SHOW KEY/DIRECTORY MOVE_GOLD MOVE_BLUE MOVE GOLD EXPAND_GOLD EXPAND_BLUE EXPAND DEFAULT CONTRACT_GOLD CONTRACT_BLUE CONTRACT BLUE DBG>このコマンドは対応するキーが定義されている状態の名前を表示します。
現在の言語を示します。
SHOW LANGUAGE
関連コマンド
DBG> SHOW LANGUAGE language: BASIC DBG>このコマンドは現在の言語の名前をBASICと表示します。
デバッガがログ・ファイルに書き込みを行っているのかどうかを示し,現在のログ・ ファイルを示します。
SHOW LOG
関連コマンド
DBG> SHOW LOG not logging to DEBUG.LOG DBG>このコマンドは現在のログ・ファイルの名前をDEBUG.LOG (省略時のログ・ ファイル)と表示し,デバッガがそのファイルに書き込みを行っていないことを通知します。
DBG> SET LOG PROG4 DBG> SET OUTPUT LOG DBG> SHOW LOG logging to USER$:[JONES.WORK]PROG4.LOG DBG>この例では,SET LOGコマンドは現在のログ・ファイルが(現在の省略時のディレクトリにある) PROG4.LOG であることを設定します。SET OUTPUT LOGコマンドを実行すると,デバッガはそのファイルにデバッガの入出力を記録します。SHOW LOG コマンドはデバッガが現在の省略時のディレクトリにあるログ・ ファイルPROG4.COMに書き込み中であることを確認します。
ソース・コードを表示するための現在のソース行のマージン設定を示します。
SHOW MARGINS
関連コマンド
DBG> SHOW MARGINS left margin: 1 , right margin: 255 DBG>このコマンドは省略時のマージン設定として1と255を表示します。
DBG> SET MARGINS 50 DBG> SHOW MARGINS left margin: 1 , right margin: 50 DBG>このコマンドは省略時の左マージン設定として1を,変更された右マージン設定として50 を表示します。
DBG> SET MARGINS 10:60 DBG> SHOW MARGINS left margin: 10 , right margin: 60 DBG>このコマンドはそれぞれ10と60に変更された左右のマージン設定を表示します。
現在のデバッガ・モード(画面ありまたは画面なし,キーパッドありまたはキーパッドなしなど) と現在の基数を示します。
SHOW MODE
関連コマンド
DBG> SHOW MODE modes: symbolic, line, d_float, screen, scroll, keypad, dynamic, interrupt, no separate window input radix :decimal output radix:decimal DBG>SHOW MODEコマンドは現在のモードと現在の入出力基数を表示します。
現在のイメージでのモジュールに関する情報を表示します。
SHOW MODULE [module-name]
SHOW MODULE/RELATEDコマンドは指定されたモジュールだけでなく,関連モジュールも表示します。 表示は正確な関係を示します。省略時の設定(/NORELATED) では,関連モジュールは表示の対象として選択されません( 指定されたモジュールだけが選択されます)。
デバッガはプログラム内の共用可能イメージごとにダミー・モジュールを作成します。 これらの共用可能"イメージ・モジュール"の名前には接頭辞として"SHARE$ " が付きます。SHOW MODULE/SHAREコマンドは現在のイメージ内のモジュールだけでなく, これらの共用可能イメージ・モジュールも示します。
共用可能イメージ・モジュールを設定すると,そのイメージに対するユニバーサル・ シンボルが実行時シンボル・テーブルにロードされ,現在のイメージからそれらのシンボルを参照できるようになります。 ただし,現在のイメージからそのイメージ内の他の( ローカルまたはグローバルな)シンボルを参照することはできません。 この機能は新しいSET IMAGEコマンドやSHOW IMAGE コマンドの働きと重なります。
Adaプログラムに特有の情報については,ヘルプ・トピックLanguage_Support Ada を参照してください。
関連コマンド
DBG> SHOW MODULE module name symbols size TEST yes 432 SCREEN_IO no 280 total PASCAL modules: 2. bytes allocated: 2740. DBG>この例では,SHOW MODULEコマンドにはパラメータが指定されておらず, 現在のイメージ内のモジュールすべてに関する情報を表示します。現在のイメージは省略時の設定ではメイン・ イメージです。この例は,すべてのモジュールが同一のソース言語を持っているときの表示形式を示します。"symbols" 欄はTESTモジュールは設定されていても,SCREEN_IOモジュールは設定されていないことを示します。
DBG> SHOW MODULE FOO,MAIN,SUB* module name symbols language size FOO yes MACRO 432 MAIN no FORTRAN 280 SUB1 no FORTRAN 164 SUB2 no FORTRAN 204 total modules: 4. bytes allocated: 60720. DBG>この例では,SHOW MODULEコマンドはFOOモジュールとMAINモジュールに関する情報と接頭辞としてSUB を持つすべてのモジュールに関する情報を表示します。 この例は,モジュールが同一のソース言語を持っていないときの表示形式を示します。
DBG> SHOW MODULE/SHARE module name symbols language size FOO yes MACRO 432 MAIN no FORTRAN 280 . . . SHARE$DEBUG no Image 0 SHARE$LIBRTL no Image 0 SHARE$MTHRTL no Image 0 SHARE$SHARE1 no Image 0 SHARE$SHARE2 no Image 0 total modules: 17. bytes allocated: 162280. DBG> SET MODULE SHARE$SHARE2 DBG> SHOW SYMBOL * IN SHARE$SHARE2この例では,SHOW MODULE/SHAREコマンドは現在のイメージ内のモジュールすべてと共用可能イメージすべて( 共用可能イメージの名前にはその前にSHARE$ が付きます)を示します。SET MODULE SHARE$SHARE2コマンドは共用可能イメージ・ モジュールのSHARE$SHARE2を設定します。SHOW SYMBOL コマンドは共用可能イメージSHARE2に定義されたユニバーサル・シンボルを示します。
現在の出力オプションを示します。
SHOW OUTPUT
関連コマンド
DBG> SHOW OUTPUT noverify, terminal, screen_log, logging to USER$:[JONES.WORK]DEBUG.LOG;9 DBG>このコマンドは次の現在の出力オプションを示します。
現在デバッガの制御下にあるプロセスについての情報を表示します。このコマンドは特にマルチプロセス・ デバッグ構成の場合(DBG$PROCESSの値がMULTIPROCESS の場合)に指定できます。
SHOW PROCESS [process-spec[, . . . ]]
[%PROCESS_NAME] proc-name | スペースや小文字を全く含まないプロセス名。 プロセス名にはワイルドカード文字のアスタリスク(*) を含むこともできます。 |
[%PROCESS_NAME] "proc-name" | スペースや小文字を含むプロセス名。二重引用符(")の代わりに一重引用符(') を使用することもできます。 |
%PROCESS_PID proc-id | プロセス識別子(PID ,16進数)。 |
%PROCESS_NUMBER proc-number (または%PROC proc-number) | デバッガの制御下に入ったときにプロセスに割り当てられた番号。 プロセス番号はSHOW PROCESS コマンドの実行で表示されます。 |
proc-group-name | DEFINE/PROCESS_ GROUPコマンドで定義された,プロセスのグループを表すシンボル。 再帰的なシンボル定義を指定してはなりません。 |
%NEXT_PROCESS | デバッガの循環プロセス・ リスト中の可視プロセスの次のプロセス。 |
%PREVIOUS_PROCESS | デバッガの循環プロセス・ リスト中の可視プロセスの前のプロセス。 |
%VISIBLE_PROCESS | シンボル,レジスタ値,ルーチン呼び出し, ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタック, レジスタ・セット,およびイメージを持つプロセス。 |
すべてのプロセスを指定するためにワイルドカード文字のアスタリスク(*) または/ALL修飾子を使用することもできます。/ALLまたは/DYNAMIC を指定する場合,プロセスは指定できません。プロセスを指定しないか,/ALL を/BRIEF,/FULLまたは/[NO]HOLDとともに指定しないと,可視プロセスが選択されます。
プロセスを指定しないと,/HOLDは凍結状態のすべてのプロセスを選択します。 プロセス・リストを指定すると,/HOLDは凍結状態のリストに載っているプロセスを選択します。
プロセスを指定しないと,/NOHOLDは凍結状態になっていないすべてのプロセスを選択します。 プロセス・リストを指定すると,/NOHOLDは凍結状態になっていないリスト上のプロセスを選択します。
同一のコマンド行に/HOLDと/NOHOLDの両方を指定すると,表示の対象として凍結状態のプロセス と凍結状態になっていないプロセスを選択したことになります( コマンド行であとに指定した修飾子が先に指定した修飾子を上書きすることにはなりません) 。
SHOW PROCESS/FULLコマンドはベクタ型プロセッサの可用性と使用法に関する情報も表示します。 この情報は,ベクタ命令を使用するプログラムをデバッグする場合に役立ちます。
プロセスはデバッガの制御下に置かれるとすぐ,まずSHOW PROCESS表示に表示できます。 プロセスはEXITコマンドまたはQUITコマンドによって終了されると,SHOW PROCESS コマンドを実行しても表示できなくなります。
省略時の設定(/BRIEF)では,次の情報も含め,1つのプロセスにつき1行の情報が表示されます。
状態 | 説明 |
---|---|
Activated | イメージとそのプロセスがデバッガの制御下に置かれている。 |
Break Break on branch Break on call Break on instruction Break on lines Break on modify of Break on return Exception break Exception break preceding | ブレークポイントが検出された。 |
Interrupted | 実行が他のプロセスで中断されているためか, またはユーザが強制終了キー・ シーケンス(省略時の設定ではCtrl/C)を使用してプログラムの実行に割り込みをかけたために実行がそのプロセスで割り込みをかけられた。 |
Step Step on return | コマンドが完了した。 |
Terminated | 指示されたイメージは実行を終了したが, そのプロセスは依然としてデバッガの制御下にある。 したがって,イメージとそのプロセスに関する情報を獲得できる。プロセスを終了するには,EXIT コマンドまたはQUITコマンドを使用できる。 |
Trace Trace on branch Trace on call Trace on instruction Trace on lines Trace on modify of Trace on return Exception trace Exception trace preceding | トレースポイントが検出された。 |
Unhandled exception | 未処理例外が検出された。 |
Watch of | ウォッチポイントが検出された。 |
SHOW PROCESS/FULLコマンドはプロセスに関する補足的な情報を表示します。( 例を参照してください。)
関連コマンド
DBG_2> SHOW PROCESS Number Name Hold State Current PC * 2 _WTA3: HOLD break SCREEN\%LINE 47 DBG_2>省略時の設定では,SHOW PROCESSコマンドは左端の欄に可視プロセス(アスタリスク(*) で示される)に関する情報を1行表示します。可視プロセスはプロセス名として_WTA3: を持っています。_WTA3:はデバッガの制御下に置かれた2 番目のプロセス(プロセス番号2)です。このプロセスは凍結状態になっていて, イメージの実行はSCREENモジュールの47行目のブレークポイントで中断されます。
DBG_2> SHOW PROCESS/FULL %PREVIOUS_PROCESS Process number: 1 Process name: JONES_1: Hold: NO Visible process: NO Current PC: TEST_VALVES\%LINE 153 State: interrupted PID: 20400885 Owner PID: 00000000 Current/Base priority: 5/4 Terminal: VTA79: Image name: USER$:[JONES.PROG1]TEST_VALVES.EXE;31 Elapsed CPU time: 0 00:03:17.17 CPU Limit: Infinite Buffered I/O Count: 14894 Remaining buffered I/O quota: 80 Direct I/O Count: 6956 Remaining direct I/O quota: 40 Open file count: 7 Remaining open file quota: 43 Enqueue count: 200 Remaining enqueue quota: 198 Vector capable: Yes Vector consumer: Yes Vector CPU time: 00:00:00.00 Fast Vector context switches: 0 Slow Vector context switches: 0 Current working set size: 1102 Working set size quota: 1304 Current working set extent: 12288 Maximum working set extent: 12288 Peak working set size: 4955 Maximum authorized working set: 1304 Current virtual size: 255 Peak virtual size: 16182 Page faults: 41358 Active ASTs: Remaining AST Quota: 27 Event flags: FF800000 60000003 Event flag wait mask: 7FFFFFFF DBG_2>SHOW PROCESS/FULL %PREVIOUS_PROCESSコマンドはプロセスの循環リスト中の前のプロセス( この場合にはプロセス番号1)に関する最大レベルの情報を表示します。
DBG_2> SHOW PROCESS %PROCESS_NAME TEST_3 Number Name Hold State Current PC 7 TEST_3 watch of TEST_3\ROUT4\COUNT TEST_3\%LINE 54 DBG_2>このSHOW PROCESSコマンドはTEST_3プロセスに関する情報を1行表示します。 イメージは変数COUNTのウォッチポイントで中断されます。
DBG_2> SHOW PROCESS/DYNAMIC Dynamic process setting is enabled DBG_2>このコマンドは動的プロセス設定が有効になることを表します。
整数データの入力や表示のための現在の基数を示します。/OVERRIDEが指定された場合には, 現在の上書き型の基数を示します。
SHOW RADIX
SET RADIXコマンドを入力していなかった場合,データの入力や表示のための省略時の基数はほとんどの言語の場合10 進数です。VAXプロセッサでは,BLISSとMACRO-32です。MACRO-32です。 この2つの省略時の基数は16進数です。Alphaプロセッサでは, 例外はBLISSとMACRO-32とMACRO-64です。MACRO-32とMACRO-64 です。この3つの省略時の基数は16進数です。
すべてのデータの表示用の現在の上書き型の基数は前回SET RADIX /OVERRIDEコマンドで設定した上書き型の基数になります。SET RADIX /OVERRIDEコマンドを入力していなかった場合,変更型の基数は"ありません" 。
関連コマンド
DBG> SHOW RADIX input radix: decimal output radix: decimal DBG>このコマンドは入力基数と出力基数を10進数として表示します。
DBG> SET RADIX/OVERRIDE HEX DBG> SHOW RADIX/OVERRIDE output override radix: hexadecimal DBG>この例では,SET RADIX/OVERRIDEコマンドは上書き型の基数を16進数に設定し,SHOW RADIX/OVERRIDE コマンドは上書き型の基数を示します。これは,EXAMINE などのコマンドがすべてのデータを16進整数データとして表示することを意味します。
シンボル検索のための現在の有効範囲検索リストを示します。
SHOW SCOPE
現在の有効範囲検索リストは前回SET SCOPEコマンドで設定された有効範囲検索リストです。 省略時の設定では,SET SCOPEコマンドが入力されていなかった場合, 現在の有効範囲検索リストは0,1,2, . . . ,nになります。
省略時の有効範囲検索リストは,パス名接頭辞を持たないシンボルに対して,EXAMINE X のようなシンボル検索の場合,最初に現在実行中のルーチン( 有効範囲0)でXを検索し,そこでXが可視になっていなければ, そのルーチンの呼び出し元(有効範囲1)を検索していくというように, 呼び出しスタックを順々に検索していくことを指定します。有効範囲 nにもXが見つかれなければ,デバッガは実行時シンボル・ テーブル(RST)の残り,つまり,設定されているすべてのモジュールと必要であればグローバル・ シンボル・テーブル(GST)を検索します。
呼び出しスタックのルーチンを表現するためにSET SCOPEコマンドに10進整数を使用した場合には,SHOW SCOPE コマンドは可能であれば,整数で表現されるルーチン名を表示します。
関連コマンド
DBG> CANCEL SCOPE DBG> SHOW SCOPE scope: * 0 [ = EIGHTQUEENS\TRYCOL\REMOVEQUEEN ], 1 [ = EIGHTQUEENS\TRYCOL ], 2 [ = EIGHTQUEENS\TRYCOL 1 ], 3 [ = EIGHTQUEENS\TRYCOL 2 ], 4 [ = EIGHTQUEENS\TRYCOL 3 ], 5 [ = EIGHTQUEENS\TRYCOL 4 ], 6 [ = EIGHTQUEENS ] DBG> SET SCOPE/CURRENT 2 DBG> SHOW SCOPE scope: 0 [ = EIGHTQUEENS\TRYCOL\REMOVEQUEEN ], 1 [ = EIGHTQUEENS\TRYCOL ], * 2 [ = EIGHTQUEENS\TRYCOL 1 ], 3 [ = EIGHTQUEENS\TRYCOL 2 ], 4 [ = EIGHTQUEENS\TRYCOL 3 ], 5 [ = EIGHTQUEENS\TRYCOL 4 ], 6 [ = EIGHTQUEENS ] DBG>
CANCEL SCOPEコマンドは省略時の有効範囲検索リストを復元します。 省略時の有効範囲検索リストは(最初の) SHOW SCOPEコマンドで表示されます。 この例では,ルーチンTRYCOLへの数回の再帰呼び出しのあと, 実行はREMOVEQUEENルーチンで中断されます。アスタリスク(*)は有効範囲検索リストが有効範囲0 ,つまり実行が中断されるルーチンの有効範囲で始まることを示します。
例のSET SCOPE/CURRENTコマンドは有効範囲検索リストの始まりを有効範囲2 に再設定します。有効範囲2は実行が中断されるルーチンの呼び出し元の有効範囲です。(2 番目の) SHOW SCOPEコマンドの出力に付いているアスタリスクは有効範囲検索リストが今度は有効範囲2 で始まることを表します。
DBG> SET SCOPE 0,STACKS\R2,SCREEN_IO,\ DBG> SHOW SCOPE scope: 0, [= TEST ], STACKS\R2, SCREEN_IO, \ DBG>この例では,SET SCOPEコマンドはデバッガに次の有効範囲検索リストに従ってパス名接頭辞を持たないシンボルを検索するように指示します。 最初に,デバッガはPC範囲(0で示され,モジュールTESTにある)を検索します。PC 範囲内に指定されたシンボルが見つからないと,次にモジュールSTACKS のルーチンR2を検索します。必要であれば,次にモジュールSCREEN_IO を検索し,最後に(グローバル有効範囲(\)で示される)グローバル・ シンボル・テーブルを検索します。SHOW SCOPEコマンドはシンボル検索のための現在の有効範囲検索リストを示します。 省略時の有効範囲検索リストが有効になっているか, またはSET SCOPE/CURRENTコマンドを入力した場合を除き,SHOW SCOPE 表示にアスタリスクは示されません。
SEARCHコマンドに対して現在有効になっている省略時の修飾子(/ALLか/NEX T ,/IDENTIFIERか/STRING)を示します。
SHOW SEARCH
関連コマンド
DBG> SHOW SEARCH search settings: search for next occurrence, as a string DBG> SET SEARCH IDENT DBG> SHOW SEARCH search settings: search for next occurrence, as an identifier DBG> SET SEARCH ALL DBG> SHOW SEARCH search settings: search for all occurrences, as an identifier DBG>この例では,最初のSHOW SEARCHコマンドはSET SEARCHコマンドの省略時の設定を表示します。 省略時の設定では,デバッガは指定文字列が次に現れる箇所を検索し, 表示します。
2番目のSHOW SEARCHコマンドは,デバッガが指定文字列の次に現れる箇所を検索するものの, その前後が現在の言語の識別子の一部になり得る文字に接していない場合だけその文字列を表示することを通知します。
3番目のSHOW SEARCHコマンドはデバッガが指定文字列の現れる箇所すべてを検索するものの, その前後が現在の言語の識別子の一部になり得る文字に接していない場合だけそれらの文字列を表示することを通知します。
ディスプレイ属性,つまりエラー,入力,命令,出力,プログラム,プロンプト, スクロール,ソースのそれぞれに対して現在選択されているディスプレイを示します。
SHOW SELECT
関連コマンド
DBG> SHOW SELECT display selections: scroll = SRC input = none output = OUT error = PROMPT source = SRC instruction = none program = PROMPT prompt = PROMPT DBG>SHOW SELECTコマンドはディスプレイ属性のそれぞれに対して現在選択されているディスプレイを示します。 選択されているディスプレイは言語の省略時の設定です。
現在有効になっている,ソース・ディレクトリの検索リストと検索方法を示します。
SHOW SOURCE
ソース・ディレクトリ検索リストがSET SOURCEコマンドまたはSET SOURCE /MODULE=module-nameコマンドによって設定されていない場合には,SHOW SOURCE コマンドはディレクトリ検索リストが現在有効になっていないことを通知します。 この場合,各ソース・ファイルはそれがコンパイル時に存在していたディレクトリにあるものと判断されます( デバッガはさらにソース・ ファイルのバージョン番号と作成日時がデバッガのシンボル・ テーブルの情報に一致するかもチェックします)。
ソース・コードの表示用に使用するファイルがEDITコマンドを使用して編集するファイルと異なっている場合には,/EDIT 修飾子を指定する必要があります。Ada プログラムの場合がそうです。Adaプログラムの場合,SHOW SOURCEコマンドはソース表示に使用するファイル(Adaプログラム・ライブラリの" コピーされたソース・ファイルの検索リストを示します。SHOW SOURCE/EDITコマンドは,EDITコマンドを使用して編集されるソース・ファイルの検索リストを示します。
Adaプログラムに特有の情報については,Help Language_Support Adaとタイプして参照してください。
関連コマンド
DBG> SHOW SOURCE no directory search list in effect, match the latest source file version DBG> SET SOURCE [PROJA],[PROJB],DISK:[PETER.PROJC] DBG> SHOW SOURCE source directory search list for all modules, match the latest source file version: [PROJA] [PROJB] DISK:[PETER.PROJC] DBG>この例では,SET SOURCEコマンドはデバッガに[PROJA],[PROJB], DISK:[PETER.PROJC]の各ディレクトリを検索するように指示します。 省略時の設定では,デバッガはソース・ファイルの最新バージョンを検索します。
DBG> SET SOURCE/MODULE=CTEST/EXACT [], DISK$2:[PROJD] DBG> SHOW SOURCE source directory search list for CTEST, match the exact source file version: [] DISK$2:[PROJD] source directory search list for all other modules, match the latest source file version: [PROJA] [PROJB] DISK:[PETER.PROJC] DBG>この例では,SET SOURCEコマンドはデバッガに現在の省略時のディレクトリ( []) とDISK$2:[PROJD]ディレクトリを検索して,CTESTモジュールで使用するソース・ ファイルを検索するように指示します。/EXACT修飾子は, デバッグ・シンボル・テーブルにあるバージョンと正確に一致するバージョンのCTEST ソース・ファイルを検索するように指定しています。
現在アクティブなルーチン呼び出しに関する情報を表示します。
SHOW STACK [integer]
VAXプロセッサでは,1回のルーチン起動で呼び出しスタックに呼び出しフレームが1 つ生じます。
Alphaプロセッサでは,ルーチン起動を行うと( スタックに呼び出しフレームが生じる)スタック・フレーム・プロシージャ,( レジスタに呼び出しフレームが格納される)レジスタ・フレーム・プロシージャ, または(呼び出しフレームのない)空フレーム・プロシージャが生じる可能性があります。SHOW STACK はスタック・フレーム・プロシージャとレジスタ・ フレーム・プロシージャの情報は提供しますが,空フレーム・ プロシージャの情報は提供しません。(例2を参照。)
関連コマンド
DBG> SHOW STACK stack frame 0 (2146814812) condition handler: 0 SPA: 0 S: 0 mask: ^M<r2> PSW: 0000 (hexadecimal) saved AP: 7 saved FP: 2146814852 saved PC: EIGHTQUEENS\%LINE 69 saved R2: 0 argument list:(1) EIGHTQUEENS\%LINE 68+2 stack frame 1 (2146814852) condition handler: SHARE$PASRTL+888 SPA: 0 S: 0 mask: none saved PSW: 0000 (hexadecimal) saved AP: 2146814924 saved FP: 2146814904 saved PC: SHARE$DEBUG+667 DBG>VAXシステムの場合のこの例では,SHOW STACKコマンドは現在のPC記憶位置にあるすべての呼び出しスタック・ フレームに関する情報を表示します。
DBG> SHOW STACK invocation block 0 FP: 000000007F907AD0 Detected what appears to be a NULL frame NULL frames operate in the same invocation context as their caller NULL Procedure Descriptor (0000000000010050): Flags: 3089 KIND: PDSC$K_KIND_FP_STACK (09) Signature Offset 0000 Entry Address: MAIN\FFFF Procedure Descriptor (0000000000010000): Flags: 3089 KIND: PDSC$K_KIND_FP_STACK (09) FP is Base Register Rsa Offset: 0008 Signature Offset 0000 Entry Address: MAIN Ireg Mask: 20000004 <R2,FP> RA Saved @ 000000007F907AD8: FFFFFFFF8255A1F8 R2 Saved @ 000000007F907AE0: 000000007FFBF880 FP Saved @ 000000007F907AE8: 000000007F907B30 Freg Mask: 00000000 Size: 00000020 invocation block 1 FP: 000000007F907B30 Procedure Descriptor (FFFFFFFF8255D910): Flags: 3099 KIND: PDSC$K_KIND_FP_STACK (09) Handler Valid FP is Base Register Rsa Offset: 0048 Signature Offset 0001 Entry Address: -2108317536 Ireg Mask: 20002084 <R2,R7,R13,FP> RA Saved @ 000000007F907B78: 000000007FA28160 R2 Saved @ 000000007F907B80: 0000000000000000 R7 Saved @ 000000007F907B88: 000000007FF9C9E0 R13 Saved @ 000000007F907B90: 000000007FA00900 FP Saved @ 000000007F907B98: 000000007F907BB0 Freg Mask: 00000000 Size: 00000070 Condition Handler: -2108303104 DBG>これは,Alphaシステムの例です。ルーチン・セクションのプロローグおよびエピローグが空フレームとなるデバッガに表示されることに注意してください。 フレーム・ポインタ(FP)内の変化前のプロローグ部分およびフレーム・ ポインタ( FP)の回復後のエピローグ部分は,それぞれ空フレームのように見えるため, 空フレームと報告されます。
STEPコマンドに対して現在有効になっている省略時の修飾子(/INTO, /INSTRUCTION,/NOSILENTなど)を示します。
SHOW STEP
PF1-PF3を押すことにより画面モードを有効にすると,(出力表示とDO表示の冗長ソース表示を削除するために) SET MODE SCREEN コマンドだけでなくSET STEP NOSOURCE コマンドも入力されます。この場合,省略時の修飾子として/LINE ,/OVER,/NOSILENT,/NOSOURCEが使用されます。
関連コマンド
DBG> SET STEP INTO,NOSYSTEM,NOSHARE,INSTRUCTION,NOSOURCE DBG> SHOW STEP step type: nosystem, noshare, nosource, nosilent, into routine calls, by instruction DBG>この例では,SHOW STEPコマンドはデバッガが次の処置を取ることを示します。
現在のイメージに対してデバッガの実行時シンボル・テーブル(RST)に関する情報を表示します。
SHOW SYMBOL symbol-name[, . . . ] [IN scope[, . . . ]]
SHOW SYMBOLコマンドは指定された名前に一致し,しかも scopeパラメータで指定されたレキシカル要素の中で宣言されている現在のイメージのRST にあるシンボルだけを表示します。このパラメータを省略すると, symbol-nameパラメータで指定された名前に一致するシンボルを検索するために, 現在のイメージに対して設定されているすべてのモジュールとグローバル・ シンボル・テーブル(GST) が検索されます。
Alphaプロセッサでは,SHOW SYMBOL/ADDRESS procedure-nameコマンドは指定されたルーチン,エントリ・ポイントまたはAda パッケージのコード・アドレスとプロシージャ・ディスクリプタ・ アドレスの両方を表示します。
C++モジュールの場合,symbol-name がクラスの場合は,SHOW SYMBOL /FULLはそのクラスに関する情報も表示します。
修飾子を指定しないと,SHOW SYMBOLコマンドは現在のイメージに対するRST に存在する(つまり,現在のイメージに対して設定されているすべてのモジュールとGST にある),指定されたシンボルの宣言または定義のすべてをリストします。 シンボルはそのパス名といっしょに表示されます。パス名はデバッガがシンボルの特定の宣言に達するためにたどらなければならない検索有効範囲( モジュール,ネストされたルーチン,ブロックなど)を識別します。 デバッガ・コマンドでシンボリック・アドレス式を指定するときは, シンボルが2回以上定義されていて,デバッガがあいまいさを解消できない場合にだけパス名を使用します。
/DEFINED修飾子と/LOCAL修飾子は(プログラムから派生するシンボルではなく) DEFINE コマンドで定義されたシンボルに関する情報を表示します。 他の修飾子はプログラム内で宣言されたシンボルに関する情報を表示します。
Adaプログラムに特有の情報については,「Ada」ヘルプ・トピックを参照してください。
関連コマンド
DBG> SHOW SYMBOL I data FORARRAY\I DBG>このコマンドはシンボルIがFORARRAYモジュールに定義されていて,ルーチンではなく変数( データ)であることを示します。
DBG> SHOW SYMBOL/ADDRESS INTARRAY1 data FORARRAY\INTARRAY1 descriptor address: 0009DE8B DBG>このコマンドはシンボルINTARRAY1がFORARRAYモジュールに定義されていて, メモリ・アドレスが0009DE8Bであることを示します。
DBG> SHOW SYMBOL *PL*このコマンドは名前に"PL"という文字列が含まれているシンボルをすべてリストします。
DBG> SHOW SYMBOL/TYPE COLOR data SCALARS\MAIN\COLOR enumeration type (primary, 3 elements), size: 4 bytesこのコマンドは変数COLORが列挙型であることを示します。
DBG> SHOW SYMBOL/TYPE/ADDRESS *このコマンドはすべてのシンボルに関するすべての情報を表示します。
DBG> SHOW SYMBOL * IN MOD3\COUNTER routine MOD3\COUNTER data MOD3\COUNTER\X data MOD3\COUNTER\Y DBG>このコマンドはパス名MOD3\COUNTERで示される有効範囲で定義されているすべてのシンボルをリストします。
DBG> DEFINE/COMMAND SB=SET BREAK DBG> SHOW SYMBOL/DEFINED SB defined SB bound to: SET BREAK was defined /command DBG>この例では,DEFINE/COMMANDコマンドはSET BREAKコマンドのシンボルとしてSB を定義します。SHOW SYMBOL/DEFINEDコマンドはその定義を表示します。
タスキング・プログラム(マルチスレッド・プログラムとも呼ばれる)のタスクに関する情報を表示します。
SHOW TASK [task-spec[, . . . ]]
%ACTIVE_TASK | GO,STEP,CALLまたはEXIT コマンドの実行時に実行されるタスク。 |
%CALLER_TASK | Adaプログラムにのみ適用される。accept 文の実行時に,そのaccept文に対応するエントリが呼び出したタスク。 |
%NEXT_TASK | デバッガのタスク・リスト中の可視タスクの次のタスク。タスクの順番は自由に決められますが, その順番は1回のプログラム実行の中で不変です。 |
%PREVIOUS_ TASK | デバッガのタスク・リスト中の可視タスクの前のタスク。 |
%VISIBLE_TASK | シンボル,レジスタ値,ルーチン呼び出し,ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタックとレジスタ・ セットを持つタスク。 |
ワイルドカード文字のアスタリスク(*)は使用できません。代わりに/ALL 修飾子を使用してください。/ALL,/STATISTICSまたは/TIME_SLICEを指定する場合, タスクは指定できません。
表示の対象として選択された各タスクについて補足的な情報を表示します。 他の修飾子を指定しないで/FULLを指定した場合,あるいは/CALLSまたは/STATISTICS を指定した場合に,補足的な情報が提供されます。
表示の対象として凍結状態になっているタスクか凍結状態になっていないタスクのいずれかを選択します。
タスクを指定しないと,/HOLDは凍結状態のすべてのタスクを選択します。 タスク・リストを指定すると,/HOLDはタスク・リストに載っている凍結状態のタスクを選択します。
タスクを指定しないと,/NOHOLDは凍結状態になっていないすべてのタスクを選択します。 タスク・リストを指定すると,/NOHOLDはタスク・リストに載っている凍結状態になっていないタスクを選択します。
タスクを指定しない場合には,指定した優先順位nのどれかを持つすべてのタスクを選択します。 ただし,nは0から15までの10 進整数です。タスク・リストを指定すると,指定された優先順位のどれかを持つタスク・ リストに載っているタスクを選択します。
タスキング・システム全体のタスク統計情報を表示します。この情報を使用すると, タスキング・プログラムの性能を測定できます。全体のスケジューリング( コンテキスト・スイッチとも言う)の数が多ければ多いほど, タスキングのオーバヘッドが増えます。
前回のSET TASK/TIME_SLICEコマンドによる指定に従って,現在のタイム・ スライス値を秒単位で表示します。SET TASK/TIME_SLICEコマンドがそれまでに入力されていなかった場合には, プログラムで指定されているタイム・ スライス値があればそれを表示します。それまでにタイム・スライス値が設定されていない場合には, 値は0.0,つまりタイム・スライスは無効ということになります。
/TIME_SLICEはイベント機能がADAの時のみに有効になります。
関連コマンド
DBG> SHOW EVENT_FACILITY event facility is ADA . . . DBG> SHOW TASK/ALL task id pri hold state substate task object * %TASK 1 7 RUN 122624 %TASK 2 7 HOLD SUSP Accept H4.MONITOR %TASK 3 6 READY Entry call H4.CHECK_IN DBG>この例では,SHOW EVENT_FACILITYコマンドは現在のイベント機能としてADA を示します。SHOW TASK/ALLコマンドは,Adaサービスを使用して作成され, 現在も存在しているすべてのタスクに関する基本的な情報を提供します。 タスクごとに1行が使用されます。アクティブなタスクにはアスタリスク(*) が付けられます。この例では,%TASK 1がアクティブなタスク(RUN 状態にあるタスク)です。
DBG> SHOW TASK %ACTIVE_TASK,%TASK 3,MONITORこのコマンドはアクティブなタスク,%TASK 3タスク,およびMONITORというタスクを表示の対象として選択します。
DBG> SHOW TASK/PRIORITY=6このコマンドは優先順位が6になっているすべてのタスクを選択します。
DBG> SHOW TASK/STATE=(RUN,SUSP)このコマンドは実行中であるか,中断されているすべてのタスクを表示の対象として選択します。
DBG> SHOW TASK/STATE=SUSP/NOHOLDこのコマンドは中断されていて,しかも凍結状態でないすべてのタスクを表示の対象として選択します。
DBG> SHOW TASK/STATE=(RUN,SUSP)/PRIO=7 %VISIBLE_TASK,%TASK 3このコマンドは,可視タスクと%TASK 3タスクの中から,RUNNINGまたはSUSPENDED STATE になっていて,優先順位が7になっているタスクを表示の対象として選択します。
出力を編集するために使用される現在の端末画面の高さ(ページ)と幅を示します。
SHOW TERMINAL
関連コマンド
DBG> SHOW TERMINAL terminal width: 80 page: 24 wrap: 80 DBG>このコマンドは現在の端末画面の幅と高さ(ページ)を80列,24行と表示し, メッセージは80列でラップするよう設定されています。
トレースポイントに関する情報を表示します。
SHOW TRACE
省略時の設定では,SHOW TRACEはユーザ定義トレースポイントと定義済みトレースポイントの両方( ただし,ある場合)に関する情報を表示します。 これはSHOW TRACE/USER/PREDEFINEDコマンドを入力する場合と同じです。 ユーザ定義トレースポイントはSET TRACEコマンドで設定されます。定義済みトレースポイントは, デバッガを起動すると自動的に設定され,デバッグの対象になっているプログラムの種類によって異なります。
SET TRACE/AFTER:nを使用してトレースポイントを設定した場合,SHOW TRACE コマンドは10進整数nの現在の値,つまり最初に指定された整数値からトレースポイント記憶位置に到達するたびに1 を引いた値を表示します。 デバッガはnの値が0になるまでトレースポイント記憶位置に到達するたびに nを減少させていきます。0 になると,デバッガはトレース動作を取ります。
Alphaシステムでは,トレースが特定のクラスの命令にある場合は,(SET TRACE/CALLまたはSET TRACE/RETURNと同様に) SHOW TRACEコマンドは個々の命令を表示しません。
関連コマンド
DBG> SHOW TRACE tracepoint at routine CALC\MULT tracepoint on calls: RET RSB BSBB JSB BSBW CALLG CALLS DBG>このVAX例では,SHOW TRACEコマンドは現在設定されているすべてのトレースポイントを示します。 この例は,実行がCALCモジュール内のMULTルーチンか, またはRET,RSB,BSBB,JSB,BSBW,CALLGまたはCALLSの命令のどれか1 つに到達すると必ず検出されるユーザ定義トレースポイントを示します。
DBG_2> SHOW TRACE/PREDEFINED predefined tracepoint on program activation DO (SET DISP/DYN/REM/SIZE:64/PROC SRC_/SUF=PROCESS_NU AT H1 SOURCE (EXAM/SOURCE .%SOURCE_SCOPE\%PC); SET DISP/DYN/REM/SIZE:64/PROC INST_/SUF=PROCESS_NU AT H1 INST (EXAM/INSTRUCTION .0\%PC)) predefined tracepoint on program termination DBG_2>このコマンドは現在設定されている定義済みトレースポイントを示します。 この例はマルチプロセス・プログラムの場合(DBG$PROCESSの値がMULTIPROCESS の場合),デバッガによって自動的に設定される定義済みトレースポイントを示します。 新しいプロセスがデバッガの制御下に入ると, プログラム起動のトレースポイントが起動されます。DO句はプロセス起動トレースポイントが検出されると,SRC_ nという名前のプロセス固有のソース表示とINST_ nという名前のプロセス固有の機械語命令ディスプレイを作成します。 プロセスがイメージ終了を行うと, プログラム終了のトレースポイントが検出されます。
型がコンパイラ生成型ではないプログラム記憶位置の現在の型を示します。/OVERRIDE が指定された場合には,現在の上書き型を示します。
SHOW TYPE
すべてのプログラム記憶位置に対する現在の上書き型は前回SET TYPE /OVERRIDEコマンドで設定された上書き型です。SET TYPE/OVERRIDEコマンドを入力していなかった場合, 上書き型はありません。
関連コマンド
DBG> SET TYPE QUADWORD DBG> SHOW TYPE type: quadword integer DBG>この例では,型がコンパイラ生成型ではない記憶位置に対して型をクォドワードに設定します。SHOW TYPE コマンドはそれらの記憶位置の現在の省略時の型をクォドワード整数として表示します。 これは,特に他に指定がないかぎり( たとえばEXAMINEコマンドでtype修飾子を使用するなどによる) ,デバッガがそれらの記憶位置にある要素をクォドワード整数として解釈し, 表示することを意味します。
DBG> SHOW TYPE/OVERRIDE type/override: none DBG>このコマンドは上書き型が定義されていないことを表します。
現在のベクタ・モード(同期化または非同期化)を示します。
VAXのベクタ化されたプログラムの場合に指定できます。
SHOW VECTOR_MODE
関連コマンド
DBG> SHOW VECTOR_MODE Vector mode is nonsynchronized DBG> SET VECTOR_MODE SYNCHRONIZED DBG> SHOW VECTOR_MODE Vector mode is synchronized DBG>SHOW VECTOR_MODEコマンドはSET VECTOR_MODEコマンドの作用を示します。
ウォッチポイントに関する情報を表示します
SHOW WATCH
SET WATCH/AFTER:nを使用してウォッチポイントを設定した場合,SHOW WATCH コマンドは10進整数nの現在の値,つまり最初に指定された整数値からウォッチポイント記憶位置に到達するたびに1 を引いた値を表示します。 デバッガはnの値が0になるまでウォッチポイント記憶位置に到達するたびに nを減少させていきます。0 になると,デバッガはウォッチ動作を取ります。
関連コマンド
DBG> SHOW WATCH watchpoint of MAIN\X watchpoint of SUB2\TABLE+20 DBG>このコマンドは2つのウォッチポイントを表示します。1つは(MAINモジュールに定義されている) 変数Xにあるもので,もう1つはSUB2\TABLE+20の記憶位置( アドレス式TABLEによって示されるアドレスに20バイト加えた位置) にあるものです。
定義済みとユーザ定義の画面モード・ウィンドウの名前と画面位置を示します。
SHOW WINDOW [window-name[, . . . ]]
DBG> SHOW WINDOW LH*,RH* window LH1 at (1,11,1,40) window LH12 at (1,23,1,40) window LH2 at (13,11,1,40) window RH1 at (1,11,42,39) window RH12 at (1,23,42,39) window RH2 at (13,11,42,39) DBG>このコマンドはLHまたはRHで始まる名前を持つすべての画面ウィンドウ定義の名前と画面部を表示します。
サブプロセスを作成し,ユーザがデバッグ・セッションを終了したりデバッグ・ コンテキストを失ったりせずに,DCLコマンドを実行できるようにします。
SPAWN [DCL-command]
DCLコマンドを指定しないと,サブプロセスが作成され,DCLコマンドを入力できるようになります。 作成されたプロセスからログ・アウトするか, (DCLコマンドのATTACHを使用して)親プロセスに接続すると,デバッグ・ セッションを継続できるようになります。
DCLコマンドにセミコロンが含まれている場合には,そのコマンドを二重引用符(") で囲まなければなりません。セミコロンがない場合には,セミコロンはデバッガ・ コマンドの区切り文字と解釈されます。文字列に二重引用符をいれるには, 二重引用符を2つ続けて入力します("")。
/NOWAIT修飾子を指定すると,サブプロセスがデバッグ・セッションと並行して実行されます。 サブプロセスの実行中でもデバッガ・コマンドは入力できます。/NOWAIT を使用する場合には,SPAWNコマンドといっしょにDCL コマンドも指定してください。これで,DCLコマンドがサブプロセスで実行されるようになります。 作成されたサブプロセスの完了を通知するメッセージが表示されます。
保持デバッガ(つまり,DEBUG/KEEPコマンドで起動されたデバッガ)は, SPAWN/ NOWAITコマンドによって実行される場合に,親プロセスとI/Oチャネルを共用します。 このため,DECwindows Motifインタフェースでは, DECterm上でリターン・キーを2回押さなければなりません。デバッガは, デバッガ・バージョン番号がコマンド・ビューに表示された後に, DECtermから実行されます。
オプションでは,次の方法で保持デバッガを実行できます。
$ DEFINE DBG$INPUT NL: $ SPAWN/NOWAIT RUN DEBUG/KEEP
さらに,DCLコマンドのSPAWNを実行することもできます。DCLは2番目のSPAWN コマンドを,そのコマンドで指定された修飾子も含めて処理します。
関連コマンド
DBG> SPAWN $この例は,パラメータを指定されていないSPAWNコマンドがDCLレベルでサブプロセスを作成することを示します。 これでDCLコマンドを入力することができます。 デバッガのプロンプトに戻るにはログ・アウトします。
DBG> SPAWN/NOWAIT/INPUT=READ_NOTES/OUTPUT=0428NOTESこのコマンドはデバッグ・セッションと並行して実行されるサブプロセスを作成します。 このサブプロセスはDCLコマンド・プロシージャのREAD_ NOTES.COMを実行します。作成された操作からの出力は0428NOTES.LOGファイルに書き込まれます。
DBG> SPAWN/NOWAIT SPAWN/OUT=MYCOM.LOG @MYCOMこのコマンドはデバッグ・セッションと並行して実行されるサブプロセスを作成します。 このサブプロセスはDCLコマンド・プロシージャMYCOML.COM を実行するためにもう1つ別のサブプロセスを作成します。その操作からの出力はMYCOM.LOG ファイルに書き込まれます。
次の行または命令,あるいは他に指定された記憶位置に達するまでプログラムを実行します。
STEP [integer]
VAXプロセッサでは,1つ以上のopcodeを指定できます。 デバッガは,opcodeがリストに指定されている次の命令まで,プログラムを実行します。 次のコマンドの結果は同じになります。
DBG> STEP/INSTRUCTION=(opcode[, . . . ]) DBG> SET BREAK/TEMPORARY/INSTRUCTION=(opcode[, . . . ]);GO
VAXプロセッサでは,ベクタ命令を指定する場合, 命令ニーモニックに命令修飾子(/UNALIGNED_DATA,/VECTOR_ INSTRUCTION,/MODIFY,/0または/1)をいれることはできません。
STEP/INTOの動作は,/[NO]JSB,/[NO]SHARE,/[NO]SYSTEM修飾子を使用して変更することができます。
ルーチン呼び出しで実行が現在中断されていて,そのルーチンがJSB命令で呼び出されている場合,STEP/INTO/NOJSB はSTEP/OVERと同じ働きです。 そうでない場合,STEP/INTO/NOJSBはSTEP/INTOと同じ働きになります。
前回のSET STEP NOJSBコマンドを上書きするにはSTEP/INTO/JSBコマンドを使用します。STEP/INTO/JSB を指定すると,STEP/INTOはCALL命令で呼び出されたルーチン内の命令だけでなく,JSB 命令で呼び出されたルーチン内の命令もステップ実行できるようになります。
/JSB修飾子はDIBOL以外のすべての言語の省略時の設定です。DIBOLの場合,/NOJSB 修飾子が省略時の設定です。DIBOLでは,アプリケーション宣言ルーチンはCALL 命令で呼び出され,DIBOL実行時ライブラリ・ルーチンはJSB 命令で呼び出されます。
STEP/RETURN nは呼び出しスタックのnレベルまでプログラムを実行します。
STEP/SEMANTIC_EVENTは,デバッグの最適化されたコードを簡素化します( 説明の項を参照)。
共用可能イメージ・ルーチンへの呼び出しで実行が現在中断されている場合,STEP/INTO/NOSHARE はSTEP/OVERと同じ働きです。そうでない場合, STEP/INTO/NOSHAREはSTEP/INTOと同じ働きになります。
前回のSET STEP NOSHAREコマンドを上書きするには,STEP/INTO/SHAREを使用します。STEP/INTO/SHARE を指定すると,STEP/INTOは他の種類のルーチン内だけでなく, 共用可能イメージ・ルーチン内の命令もステップ実行できるようになります。
(P1空間内の)システム・ルーチンへの呼び出しで実行が現在中断されている場合,STEP/INTO/NOSYSTEM はSTEP/OVERと同じ働きです。そうでない場合,STEP/INTO/NOSYSTEM はSTEP/INTOと同じ働きです。
前回のSET STEP NOSYSTEMコマンドを上書きするには,STEP/INTO/SYSTEM を使用します。STEP/INTO/SYSTEMを指定すると,STEP/INTOは他の種類のルーチン内だけでなく, システム・ルーチン内の命令もステップ実行できるようになります。
STEPコマンドの動作は次の要因に依存します。
それまでにSET STEPコマンドを入力していない場合,修飾子もパラメータも指定せずにSTEP コマンドを入力すると,デバッガは次の省略時の動作を行います。
次の修飾子は命令をステップ実行する記憶位置に影響します。
次の修飾子は1つのステップの完了時にどのような出力になるかに影響します。
次の修飾子はルーチン呼び出し時に何が起きるかに影響します。
同じ修飾子を指定してSTEPコマンドを複数入力する予定ならば,最初にSET STEP コマンドを使用して新しい省略時の修飾子を設定することができます( たとえば,SET STEP INTO, NOSYSTEMと指定すれば,STEPコマンドはSTEP/INTO/NOSYSTEM と同じ働きをするようになります)。この結果,STEP コマンドを指定するときにこれらの修飾子を使用する必要がなくなります。 他の修飾子を指定することにより,1つのSTEPコマンドが継続している間, 現在の省略時の修飾子を上書きすることができます。現在のSTEPコマンドの省略時の設定を示すには,SHOW STEP コマンドを使用します。
SET BREAK/EXCEPTIONコマンドまたはSTEP/EXCEPTIONコマンドを実行した結果, 例外ブレークポイントが検出されると,アプリケーション宣言条件ハンドラが起動される前に実行は中断されます。 そのあと,STEPコマンドで実行を再開すると, デバッガは例外を再びシグナル通知し,条件ハンドラがあればその先頭までプログラムは実行されます( 条件ハンドラ内の命令がステップ実行されます) 。
Alphaシステムでは,プログラムが/OPTIMIZEを使用してコンパイルされた場合は,STEP/SEMANTIC_EVENT およびSET STEP SEMANTIC_EVENTコマンドを使用してセマンティック・ ステップ・モードを使用することができます。 最適化されたコードをデバッグしている場合は,ソース・プログラムの明らかな記憶位置は, 同じ行が繰り返し現れる状態で前後にバウンドする傾向があります。 セマンティック・ステップ・モードでは,プログラムは, プログラム内の次のポイントまで実行します。次のポイントでは,顕著な効果( セマンティック・イベント)が現れます。
セマンティック・イベントは次のうちの1つです。
すべての割り当て,転送制御,または呼び出しがセマンティック・イベントというわけではありません。 主な例外は次のようになります。
ルーチンにステップするには,次のいずれかを行わなければなりません。
STEP/SEMANTIC_EVENTコマンドは,ブレークポイントが次のセマンティック・ イベントに設定されるようにします。実行は,次のイベントに進みます。 異なる行および文のすべての番号部分は,進行を妨げられすに,方法に従って実行される可能性があります。 セマンティック・イベントが到達した場合( つまり,イベントに対応する命令が到達しているが,実行されていない場合) 実行は中断されます(STEP/LINEを使用する場合の,次行への到達と似ています) 。
デバッガの最適化されたプログラムについての詳細は,『デバッガ説明書』を参照してください。
マルチプロセス・プログラムをデバッグするためにマルチプロセス・デバッグ構成を使用している場合( 論理名DBG$PROCESSの値がMULTIPROCESSの場合) ,次の点にも注意してください。
VAXシステムでは,STEP/OVERコマンドはFortran Run-Time Libraryルーチンへと, 飛び越されずに,ステップすることになります。詳細は,『OpenVMSデバッガ説明書』を参照してください。
関連コマンド
DBG> SHOW STEP step type: source, nosilent, by line, over routine calls DBG> STEP stepped to SQUARES$MAIN\%LINE 4 4: OPEN(UNIT=8, FILE='DATAFILE.DAT', STATUS='OLD') DBG>この例では,SHOW STEPコマンドはSTEPコマンドに対して現在有効になっている省略時の修飾子を示します。 この場合,STEPコマンドにはパラメータも修飾子も指定されていないため, ソース・コードの次の行を実行します。STEP コマンドの完了後,実行は4行目の先頭で中断されます。
DBG> STEP 5 stepped to MAIN\%LINE 47 47: SWAP(X,Y); DBG>このコマンドはソース・コードの次の5行を実行します。STEPコマンドの完了後, 実行は47行目の先頭で中断されます。
DBG> STEP/INTO stepped to routine SWAP 23: procedure SWAP (A,B: in out integer) is DBG> STEP stepped to MAIN\SWAP\%LINE 24 24: TEMP: integer := 0; DBG> STEP/RETURN stepped on return from MAIN\SWAP\%LINE 24 to MAIN\SWAP\%LINE 29 29: end SWAP; DBG>この例では,実行はSWAPルーチンへの呼び出しで一時停止され,STEP /INTOコマンドは呼び出し先ルーチンの先頭までプログラムを実行します。STEP/RETURN コマンドはSWAPルーチンの残りの部分をそのRET命令まで( つまり,制御を呼び出し元ルーチンに戻す直前のポイントに至るまで)実行します。
DBG> SET STEP INSTRUCTION DBG> SHOW STEP step type: source, nosilent, by instruction, over routine calls DBG> STEP stepped to SUB1\%LINE 26: MOVL S^#4,B^-20(FP) 26: Z:integer:=4; DBG>この例では,SET STEP INSTRUCTIONコマンドは省略時のSTEPコマンド修飾子として/INSTRUCTION を設定します。これはSHOW STEPコマンドでチェックされます。STEP コマンドは次の命令を実行します。STEPコマンドの完了後, 実行はSUB1モジュールの26行目の最初の命令(MOVL)で中断されます。
可能な場合,メモリ・アドレスをシンボリック表現に変換します。
SYMBOLIZE address-expression[, . . . ]
アドレスがレジスタ・アドレスの場合,デバッガはそのレジスタに関係する設定されているすべてのモジュールの中のすべてのシンボルを表示します。 そのようなシンボルそれぞれの完全パス名が表示されます。レジスタ名そのもの( たとえば,"%R5")も表示されます。
アドレスが,設定されているモジュール内のルーチンの呼び出しフレームにある呼び出しスタック記憶位置である場合, デバッガはそのルーチン内のシンボルで, フレーム・ポインタ(FP)またはスタック・ポインタ(SP)に相対するアドレスを持つシンボルをすべて検索します。 直前のシンボル名にオフセットを加えたものがそのアドレスのシンボル化として表示されます。 アドレス指定が複雑すぎるシンボルは無視されます。
Alphaプロセッサでは,SYMBOLIZE procedure-code-addressコマンドとSYMBOLIZE procedure-descriptor-addressコマンドは両方ともこれらのアドレスで指定されるルーチン, エントリ・ポイントまたはAda パッケージのパス名を表示します。
デバッガがアドレスのシンボル化を行えないと,メッセージが表示されます。
関連コマンド
DBG> SYMBOLIZE %R5 address PROG\%R5: PROG\X DBG>この例は,PROGルーチンのローカル変数XがR5レジスタにあることを示します。
DBG> SYMBOLIZE %HEX 27C9E3 address 0027C9E3: MOD5\X DBG>このコマンドは,整数リテラル27C9E3を16進数値として扱い,可能であればそのアドレスをシンボリック表現に変換するようにデバッガに指示します。 アドレスはMOD5モジュールのシンボルXに変換されます。
スカラ型プロセッサとベクタ型プロセッサ間で即座に同期をとるように強制します。
VAXのベクタ化されたプログラムの場合に指定できます。
SYNCHRONIZE VECTOR_MODE
SYNCHRONIZE VECTOR_MODEコマンドを入力することは,実行が中断されていたプログラム内の記憶位置でSYNC 命令とMSYNC命令を実行することと同じです。
省略時の設定では,デバッガはプログラムの実行中にスカラ型プロセッサとベクタ型プロセッサ間での同期化を強制しません(SET VECTOR_MODE NOSYNCHRONIZED)。そのような同期化を強制するには,SET VECTOR_MODE SYNCHRONIZEDコマンドを使用してください。
関連コマンド
DBG> SYNCHRONIZE VECTOR_MODE %DEBUG-I-SYNCREPCOM, Synchronize reporting completeこのコマンドはスカラ型プロセッサとベクタ型プロセッサ間で即座に同期化をとるように強制します。 この例では,診断メッセージは同期化操作が完了したことと, 保留中だったすべてのベクタ例外が許可され,通知されたことを表しています。
DBG> STEP 【1】 stepped to .MAIN.\SUB\%LINE 99 99: VVDIVD V1,V0,V2 DBG> STEP 【2】 stepped to .MAIN.\SUB\%LINE 100 100: CLRL R0 DBG> EXAMINE/FLOAT %V2 【3】 0\%V2 [0]: 13.53400 [1]: Reserved operand, encoded as floating divide by zero [2]: 247.2450 . . . DBG> SYNCHRONIZE VECTOR_MODE 【4】 %SYSTEM-F-VARITH, vector arithmetic fault, summary=00000002, mask=00000004, PC=000002E1, PSL=03C00010 break on unhandled exception preceding .MAIN.\SUB\%LINE 100 100: CLRL R0) DBG>次の番号は上の例の番号に対応しています。
ソース・コードの行を表示します。
TYPE [[module-name\]line-number[:line-number] [,[module-name\]line-number[:line-number][, . . . ]]]
モジュール名を指定しないと,デバッガは表示の対象となるソース行を見つけるために現在の有効範囲を使用します( 現在の有効範囲は前回のSET SCOPEコマンドで設定されます。SET SCOPEコマンドを入力していなかった場合には,PC 範囲が使用されます)。SET SCOPEコマンドで有効範囲検索リストを指定すると, デバッガはソース行を検索するために最初に指定された有効範囲に対応するモジュールだけを検索します。
行番号を1つだけ指定すると,デバッガはその行番号に対応するソース・ コードを表示します。
1つ1つをコンマで区切ることにより行番号のリストを指定すると,デバッガは指定された行番号のそれぞれに対応するソース・ コードを表示します。
コロン(:)で範囲内の開始行番号と終了行番号を区切り,行番号の範囲を指定すると, デバッガは指定範囲の行番号に対応するソース・コードを表示します。
1で始まり,モジュールの最大行番号以上の数字で終わる行番号の範囲を指定することにより, モジュールのソース行全部を表示できます。
ソース行を1行表示したあとは,行番号を指定しないでTYPEコマンドを入力する( つまり,TYPEを入力したあとReturnキーを押す)ことにより,同じモジュール内の次の行を表示できます。 そのあとは,この手順を繰り返すこと, つまり,ソース・プログラムを一度に1行ずつ読むことにより,次の行とそれに続く行を表示できます。
TYPEコマンドでモジュール名を指定する場合,モジュールを設定しなければなりません。 特定のモジュールが設定されているかを判断するには, SHOW MODULEコマンドを使用します。次に必要であれば,SET MODULEコマンドを使用します。
画面モードでは,TYPEコマンドの出力は出力表示でもDO表示でもなく,現在のソース表示に出力されます。 ソース表示は指定された行とその前後の行で表示ウィンドウに収まるだけの行を示します。
関連コマンド
DBG> TYPE 160 module COBOLTEST 160: START-IT-PARA. DBG> TYPE module COBOLTEST 161: MOVE SC1 TO ES0. DBG>この例では,最初のTYPEコマンドは160行目を表示します。このとき,その行番号を含むモジュールを検索するために現在の有効範囲を使用します。2 番目のTYPEコマンドは行番号を指定せずに入力されており,同じモジュール内の次の行を表示します。
DBG> TYPE 160:163 module COBOLTEST 160: START-IT-PARA. 161: MOVE SC1 TO ES0. 162: DISPLAY ES0. 163: MOVE SC1 TO ES1. DBG>このコマンドはモジュールを検索するために現在の有効範囲を使用し, 160行目から163行目までを表示します。
DBG> TYPE SCREEN_IO\7,22:24このコマンドはSCREEN_IOモジュール内にある7行目と22行目から24行目までを表示します。
指定した言語式(ブール式)が真と評価されているときに,一連のコマンドを実行します。
WHILE Boolean-expression DO (command[; . . . ])
ブール式が偽の場合,WHILEコマンドは終了します。
関連コマンド
DBG> WHILE (X .EQ. 0) DO (STEP/SILENT)このコマンドは,Xが0ではなくなるまでプログラム内の命令をステップ実行していくようデバッガに指示します(Fortran の例)。
[ 前のページ ]
[ 次のページ ]
[ 目次 ]
[ 索引 ]
[ DOC Home ]