日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
#1 |
---|
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 行目の先頭で中断されます。
#2 |
---|
DBG> STEP 5 stepped to MAIN\%LINE 47 47: SWAP(X,Y); DBG> |
このコマンドはソース・コードの次の 5 行を実行します。 STEP コマンドの完了後,実行は 47 行目の先頭で中断されます。
#3 |
---|
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 命令まで ( つまり,制御を呼び出し元ルーチンに戻す直前のポイントに至るまで ) 実行します。
#4 |
---|
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) で中断されます。
STOP |
指定されたプロセスのうち,実行中のプロセスすべてに割り込みます。
STOP [process-spec[,...]]
process-spec
このパラメータは,停止するプロセス・セットを指定します。省略時の設定は現在のプロセス・セットです。以下のいずれかの形式を使用します。
[%PROCESS_NAME] process-name スペースや小文字を含まないプロセス名。プロセス名にはワイルドカード文字 (*) を含めることができる。 [%PROCESS_NAME] " process-name" スペースまたは小文字を含むプロセス名。二重引用符 (") の代わりに,一重引用符を (') 使用することもできる。 %PROCESS_PID process_id プロセス識別子 (PID,16 進数)。 [%PROCESS_NUMBER] process-number
(または %PROC process-number)デバッガの制御下に入ったときにプロセスに割り当てられた番号。新しい番号は,1 から順番に各プロセスに割り当てられる。 EXIT コマンドまたは QUIT コマンドによってプロセスが終了した場合,そのデバッグ・セッション中にその番号が再割り当てされることがある。プロセス番号は SHOW PROCESS コマンドの実行で表示される。プロセスは,組み込みシンボル %PREVIOUS_PROCESS および %NEXT_PROCESS によってインデックスづけできるように,循環リスト内に順序づけされる。 process-set-name DEFINE/PROCESS_SET コマンドで定義された,プロセスのグループを表すシンボル。 %NEXT_PROCESS デバッガの循環プロセス・リスト中で可視プロセスの次のプロセス。 %PREVIOUS_PROCESS デバッガの循環プロセス・リスト中で可視プロセスの前のプロセス。 %VISIBLE_PROCESS シンボル,レジスタ値,ルーチン呼び出し,ブレークポイントなどの検索時に現在のコンテキストになっているスタック,レジスタ・セット,およびイメージを持つプロセス。
また,アスタリスク (*) のワイルドカード文字を使用して,すべてのプロセスを指定することができます。
STOP コマンドは指定されたプロセスに割り込みます。 STOP コマンドを NOWAIT モードで使用して,実行中のプロセスを停止することができます。
#1 |
---|
all> SHOW PROCESS Number Name State Current PC 1 DBGK$$2727282C break SERVER\main\%LINE 18834 2 USER1_2 running not available * 3 USER1_3 running not available all> CLIENTS> STOP all> show process Number Name State Current PC 1 DBGK$$2727282C break SERVER\main\%LINE 18834 2 USER1_2 interrupted 0FFFFFFFF800F7A20 * 3 USER1_3 interrupted 0FFFFFFFF800F7A20 all> |
このコマンド・シーケンスは,まずすべてのプロセスを表示した後に,プロセス・セット・クライアントの中のプロセスを停止します。最後の SHOW PROCESS コマンドは新しいプロセス状態を示しています。
SYMBOLIZE |
可能な場合,メモリ・アドレスをシンボリック表現に変換します。
SYMBOLIZE address-expression[,...]
address-expression
シンボル化の対象となるアドレス式を指定します。ワイルドカード文字のアスタリスク(*)は指定できません。
アドレスが静的アドレスの場合,それは直前のシンボル名にオフセットを加えたものとしてシンボル化されます。アドレスがコード・アドレスでもあり,そのアドレスに該当する行番号を見つけられる場合,その行番号はシンボル化の対象となります。アドレスがレジスタ・アドレスの場合,デバッガはそのレジスタに関係する設定されているすべてのモジュールの中のすべてのシンボルを表示します。そのようなシンボルそれぞれの完全パス名が表示されます。レジスタ名そのもの (たとえば, "%R5")も表示されます。
アドレスが,設定されているモジュール内のルーチンの呼び出しフレームにある呼び出しスタック記憶位置である場合,デバッガはそのルーチン内のシンボルで,フレーム・ポインタ (FP) またはスタック・ポインタ (SP) に相対するアドレスを持つシンボルをすべて検索します。直前のシンボル名にオフセットを加えたものがそのアドレスのシンボル化として表示されます。アドレス指定が複雑すぎるシンボルは無視されます。
Alpha では, SYMBOLIZE procedure-code-addressコマンドと SYMBOLIZE procedure-descriptor-addressコマンドは両方ともこれらのアドレスで指定されるルーチン,エントリ・ポイントまたは Ada パッケージのパス名を表示します。
デバッガがアドレスのシンボル化を行えないと,メッセージが表示されます。
関連コマンド
EVALUATE/ADDRESS
SET MODE [NO]LINE
SET MODE [NO]SYMBOLIC
(SET,SHOW) MODULE
SHOW SYMBOL
#1 |
---|
DBG> SYMBOLIZE %R5 address PROG\%R5: PROG\X DBG> |
この例は,PROG ルーチンのローカル変数 X が R5 レジスタにあることを示します。
#2 |
---|
DBG> SYMBOLIZE %HEX 27C9E3 address 0027C9E3: MOD5\X DBG> |
このコマンドは,整数リテラル 27C9E3 を 16 進数値として扱い,可能であればそのアドレスをシンボリック表現に変換するようにデバッガに指示します。アドレスはMOD5 モジュールのシンボル X に変換されます。
TYPE |
ソース・コードの行を表示します。
TYPE [[module-name\]line-number[:line-number]
[,[module-name\]line-number[:line-number][,...]]]
module-name
表示の対象となるソース行を含むモジュールを指定します。行番号といっしょにモジュール名を指定する場合には,標準のパス名表記を使用します。つまり,モジュール名と行番号の間に円記号 (\)を挿入してください。モジュール名を指定しないと,デバッガは表示の対象となるソース行を見つけるために現在の有効範囲を使用します (現在の有効範囲は前回の SET SCOPE コマンドで設定されます。SET SCOPE コマンドを入力していなかった場合には,PC 範囲が使用されます)。SET SCOPE コマンドで有効範囲検索リストを指定すると,デバッガはソース行を検索するために最初に指定された有効範囲に対応するモジュールだけを検索します。
line-number
コンパイラ生成行番号 (1 つまたは複数のソース言語文にラベルを付けるために使用される番号) を指定します。行番号を 1 つだけ指定すると,デバッガはその行番号に対応するソース・コードを表示します。
1 つ 1 つをコンマで区切ることにより行番号のリストを指定すると,デバッガは指定された行番号のそれぞれに対応するソース・コードを表示します。
コロン(:)で範囲内の開始行番号と終了行番号を区切り,行番号の範囲を指定すると,デバッガは指定範囲の行番号に対応するソース・コードを表示します。
1 で始まり,モジュールの最大行番号以上の数字で終わる行番号の範囲を指定することにより,モジュールのソース行全部を表示できます。
ソース行を 1 行表示したあとは,行番号を指定しないで TYPE コマンドを入力する (つまり,TYPE を入力したあと Return キーを押す) ことにより,同じモジュール内の次の行を表示できます。そのあとは,この手順を繰り返すこと,つまり,ソース・プログラムを一度に 1 行ずつ読むことにより,次の行とそれに続く行を表示できます。
TYPE コマンドは指定された行番号に対応するソース・コードの行を表示します。ソース・コードの行を示すためにデバッガが使用する行番号はコンパイラによって作成されます。行番号はコンパイラ生成リストと画面モードのソース表示に示されます。TYPE コマンドでモジュール名を指定する場合,モジュールを設定しなければなりません。特定のモジュールが設定されているかを判断するには, SHOW MODULE コマンドを使用します。次に必要であれば,SET MODULE コマンドを使用します。
画面モードでは,TYPE コマンドの出力は出力表示でも DO 表示でもなく,現在のソース表示に出力されます。ソース表示は指定された行とその前後の行で表示ウィンドウに収まるだけの行を示します。
関連コマンド
EXAMINE/SOURCE
SET (BREAK,TRACE,WATCH)/[NO]SOURCE
SET MODE [NO]SCREEN
(SET,SHOW,CANCEL) SCOPE
SET STEP [NO]SOURCE
STEP/[NO]SOURCE
#1 |
---|
DBG> TYPE 160 module COBOLTEST 160: START-IT-PARA. DBG> TYPE module COBOLTEST 161: MOVE SC1 TO ES0. DBG> |
この例では,最初の TYPE コマンドは 160 行目を表示します。このとき,その行番号を含むモジュールを検索するために現在の有効範囲を使用します。2 番目のTYPE コマンドは行番号を指定せずに入力されており,同じモジュール内の次の行を表示します。
#2 |
---|
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 行目までを表示します。
#3 |
---|
DBG> TYPE SCREEN_IO\7,22:24 |
このコマンドはSCREEN_IO モジュール内にある 7 行目と 22 行目から 24 行目までを表示します。
WAIT |
デバッガは,ターゲット・プロセスが停止するのを待ってから,次のコマンドの入力を求めるプロンプトを表示するようになります。
WAIT
マルチプロセス・プログラムをデバッグしているときに WAIT コマンドを入力すると,デバッガは前のコマンドで指定されたすべてのプロセスが実行を完了するのを待ってから,新たなコマンドを受け付けて実行するためのプロンプトを表示するようになります。関連コマンド
STOP
SET MODE [NO]INTERRUPT
SET MODE [NO]WAIT
all> 2,3> GO;WAIT processes 2,3 break at CLIENT\main\%LINE 18814 18814: status = sys$qiow (EFN$C_ENF, mbxchan, IO$_READVBLKIO$M_WRITERCHECK, myiosb) process 1 break at SERVER\main\%LINE 18834 18834: if ((myiosb.iosb$w_status == SS$_NOREADER) && (pos_status != -1)) all> |
このコマンド・シーケンスは,ターゲット・プロセス (この例では 2 と 3) を実行します。その後デバッガは,両方のプロセスがブレークポイントに達するのを待ってから,次のコマンドの入力を求めるプロンプトを表示します。
WHILE |
指定した言語式 (ブール式) が真と評価されているときに,一連のコマンドを実行します。
WHILE Boolean-expression DO (command[;...])
Boolean-expression
現在設定されている言語でブール値 (真または偽) と評価される言語式を指定します。command
デバッガ・コマンドを指定します。複数のコマンドを指定する場合には,それぞれをセミコロン(;)で区切ってください。デバッガは,実行ごとにコマンド内のすべての式の構文をチェックしてから,それらを評価します。
WHILE コマンドは現在の言語でブール式を評価します。値が真の場合には,DO 句のコマンド・リストが実行されます。すると,WHILE コマンドは手順を繰り返し,ブール式が偽と評価されるまでその式を再評価し,コマンド・リストを実行します。ブール式が偽の場合,WHILE コマンドは終了します。
関連コマンド
EXITLOOP
FOR
REPEAT
DBG> WHILE (X .EQ. 0) DO (STEP/SILENT) |
このコマンドは,X が 0 ではなくなるまでプログラム内の命令をステップ実行していくようデバッガに指示します (Fortran の例)。
索引 | 目次 |
|