Rational Developer for System z バージョン 7.6

Debug Tool の変数

Debug Tool は、それ自体の情報用にいくつかの変数を予約しています。これらの Debug Tool 変数名は、パーセント記号 (%) で始まり、プログラム変数 と区別できるようにしています。Debug Tool 変数には、サポートされている どの言語でもプログラムのテスト中にアクセスできます。

すべての Debug Tool 変数を式で使用できます。さらに、下記の COBOL の例に示すように、変数 %EPRn.、%FPRn.、%GPRn.、および %LPRn. (さまざまなタイプのレジスターを表す) を変更することができます。

MOVE name_table TO %GPR5;
注:
新しい値をレジスターに代入する際は注意してください。重要なプログラム情報が消失する可能性があります。基底レジスターは変更してはなりません。

Debug Tool 変数の値を表示するには、下の例のように LIST コマンド を使用します。

LIST %GPR15

下の表は、Debug Tool 変数を要約したものです。

Debug Tool 変数
%ADDRESS プログラムが割り込みを受けた位置のアドレス
%AMODE 中断されたプログラムの現行 AMODE
%BLOCK 現行ブロックの名前
%CAAADDRESS 中断されたプログラムに関連する CAA 制御ブロックのアドレス
%CC (アセンブラーおよび逆アセンブリーのみ) (アセンブラーおよび逆アセンブリーのみ) 現 PSW からの条件コード
%CONDITION AT OCCURRENCE が原因で Debug Tool に入った際の 条件の名前または番号。
%COUNTRY 現行国別コード
%CU 現行コンパイル単位の 1 次入り口点の名前
%EPA 現行コンパイル単位の 1 次入り口点のアドレス
%EPRn または %EPRHn (%EPRHn アセンブラーおよび逆アセンブリーのみ) (アセンブラー、逆アセンブリー、C および C++、および PL/I のみ) 拡張精度浮動小数点レジスター
%EPRBn (アセンブラーおよび逆アセンブリーのみ) (アセンブラーおよび逆アセンブリーのみ) 2 進形式での拡張精度浮動小数点レジスター
%EPRDn (アセンブラーおよび逆アセンブリーのみ) (アセンブラーおよび逆アセンブリーのみ) 10 進形式での拡張精度浮動小数点レジスター
%FPRn または %FPRHn (%FPRHn アセンブラーおよび逆アセンブリーのみ) 16 進形式での単精度浮動小数点レジスター
%FPRBn (アセンブラーおよび逆アセンブリーのみ) (アセンブラーおよび逆アセンブリーのみ) 2 進形式での単精度浮動小数点レジスター
%FPRDn (アセンブラーおよび逆アセンブリーのみ) (アセンブラーおよび逆アセンブリーのみ) 10 進形式での単精度浮動小数点レジスター
%GPRn プログラム内の割り込み時点の 32 ビット汎用レジスター
%GPRGn プログラム内の割り込み時点の 64 ビット汎用レジスター
%HARDWARE アプリケーションが実行されているハードウェアのタイプ
%LINE または %STATEMENT 現行ソース行番号
%LOAD 現行プログラムのロード・モジュールの名前、または アスタリスク (*)
%LPRn または %LPRHn (%LPRHn アセンブラーおよび逆アセンブリーのみ) 16 進形式での倍精度浮動小数点レジスター
%LPRBn (アセンブラーおよび逆アセンブリーのみ) (アセンブラーおよび逆アセンブリーのみ) 2 進形式での倍精度浮動小数点レジスター
%LPRDn (アセンブラーおよび逆アセンブリーのみ) (アセンブラーおよび逆アセンブリーのみ) 10 進形式での倍精度浮動小数点レジスター
%NLANGUAGE 現在使用されている各国語
%PATHCODE プログラムの流れが非継続地点に達したとき、およびパス条件が 起こったときに生じる変更のタイプを識別する整数
%PLANGUAGE 現行プログラム言語
%PROGMASK (アセンブラーおよび逆アセンブリーのみ) (アセンブラーおよび逆アセンブリーのみ) 現 PSW からのプログラム・マスク
%PROGRAM %CU と同じ
%PSW (アセンブラーおよび逆アセンブリーのみ) (アセンブラーおよび逆アセンブリーのみ) 現行のプログラム状況ワード
%RC 最新の Debug Tool コマンドからの戻りコード
%RSTDSETS ユーザーの設定が復元されている場合は値 1、それ以外の場合は 0
%RUNMODE Debug Tool の表示モードを識別するストリング
%STATEMENT %LINE と同じ
%SUBSYSTEM このプログラムが実行される場合の基盤となるサブシステムがある 場合、そのサブシステムの名前
%SYSTEM このプログラムをサポートするオペレーティング・システムの名前

Debug Tool 変数がオペレーティング・システムまたは言語で固有な意味を もたない場合でも、Debug Tool 変数にアクセスできます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%ADDRESS

プログラムが割り込みを受けた位置のアドレスが含まれます。

For COBOL only:

%AMODE

中断されたプログラムの現行 AMODE (24、31、または 64) が 含まれます。COBOL プログラムの場合、この値は常に 31 です。

%BLOCK

現行ブロックの名前が含まれます。ブロック名は、コンパイル単位内でユニークでないこともあります。

現行のブロックの名前を表示するには、次のいずれかのコマンドを使用します。

現行ブロックを変更するには、SET QUALIFY コマンドを 使用します。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%CAAADDRESS

中断されたプログラムに関連する言語環境プログラム CAA 制御ブロックのアドレスが 含まれます。言語環境プログラム・ランタイムなしで実行している場合、値 NONE が戻されます。

%CC (アセンブラーおよび逆アセンブリーのみ)

現 PSW の条件コード部分が含まれます。

%CONDITION

AT OCCURRENCE が原因で Debug Tool に入った際の条件の 名前または番号が含まれます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%COUNTRY

現行の国別コードが含まれます。

%CU

現行コンパイル単位の 1 次入り口点の名前が含まれます。

現行コンパイル単位を変更する には、SET QUALIFY コマンドを使用します。

%CU は、%PROGRAM と同等です。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%EPA

現在割り込みを受けているプログラムの 1 次入り口点のアドレスが含まれます。記録されたステートメントを再生している場合、%EPA 変数には現在のロケーションの名前が含まれます。

使用上の注意

%EPA の値は、R13、R14、および R15 に対する標準リンケージ規則に従うプログラム内でのみ有効です。

%EPRn または %EPRHn (%EPRHn アセンブラーおよび逆アセンブリーのみ)

(%EPR0、%EPR1、%EPR4、%EPR5、%EPR8、%EPR9、%EPR12、および %EPR13 ならびに %EPRH0、 %EPRH1、%EPRH4、%EPRH5、%EPRH8、%EPRH9、%EPRH12、および %EPRH13)

16 進形式で拡張精度浮動小数点レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %EPRn または %EPRHn 変数に値を代入します。

%EPRn および %EPRHn は、Enterprise PL/I プログラムをデバッグするときの代入のターゲットとして使用することはできません。

記録されたステートメントを再生中は、%EPRn または %EPRHn 変数を使用できません。

使用上の注意

アセンブラーおよび逆アセンブリーの場合、LIST %EPRn コマンドは 16 進で値を表示しますが、LIST %EPRHn コマンドは 16 進浮動小数点で値を表示します。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%EPRBn (アセンブラーおよび逆アセンブリーのみ)

(%EPRB0、%EPRB1、%EPRB4、%EPRB5、%EPRB8、%EPRB9、%EPRB12、および %EPRB13)

2 進形式で拡張精度浮動小数点レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %EPRBn 変数に値を代入します。

64 ビットのハードウェアが存在しない場合、これらの変数はサポートされません。そのような環境でこの変数を参照すると、「未定義のシンボル」であることを示すメッセージが表示されます。

記録されたステートメントを再生中は、%EPRBn 変数を使用できません。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%EPRDn (アセンブラーおよび逆アセンブリーのみ)

(%EPRD0、%EPRD1、%EPRD4、%EPRD5、%EPRD8、%EPRD9、%EPRD12、および %EPRD13)

10 進形式で拡張精度浮動小数点レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %EPRDn 変数に値を代入します。

10 進浮動小数点および 64 ビットのハードウェアが両方とも存在しない場合、これらの変数はサポートされません。そのような環境でこの変数を参照すると、「未定義のシンボル」であることを示すメッセージが表示されます。

記録されたステートメントを再生中は、%EPRDn 変数を使用できません。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%FPRn または %FPRHn (%FPRHn アセンブラーおよび逆アセンブリーのみ)

(%FPR0、%FPR1、%FPR2、%FPR3、%FPR4、%FPR5、%FPR6、%FPR7、%FPR8、%FPR9、%FPR10、%FPR11、%FPR12、%FPR13、%FPR14、および %FPR15 ならびに %FPRH0、%FPRH1、%FPRH2、%FPRH3、%FPRH4、%FPRH5、%FPRH6、%FPRH7、%FPRH8、%FPRH9、%FPRH10、%FPRH11、%FPRH12、%FPRH13、%FPRH14、および %FPRH15)

16 進形式で単精度浮動小数点レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %FPRn または %FPRHn 変数に値を代入します。

%FPRn および %FPRHn は、Enterprise PL/I プログラムをデバッグするときの代入のターゲットとして使用することはできません。

使用上の注意

アセンブラーおよび逆アセンブリーの場合、LIST %FPRn コマンドは 16 進で値を表示しますが、LIST %FPRHn コマンドでは 16 進浮動小数点で値がリストされます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%FPRBn (アセンブラーおよび逆アセンブリーのみ)

(%FPRB0、%FPRB1、%FPRB2、%FPRB3、%FPRB4、%FPRB5、%FPRB6、%FPRB7、%FPRB8、%FPRB9、%FPRB10、%FPRB11、%FPRB12、%FPRB13、%FPRB14、および %FPRB5)

2 進形式で単精度浮動小数点レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %FPRBn 変数に値を代入します。

64 ビットのハードウェアが存在しない場合、これらの変数はサポートされません。そのような環境でこの変数を参照すると、「未定義のシンボル」であることを示すメッセージが表示されます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%FPRDn (アセンブラーおよび逆アセンブリーのみ)

(%FPRD0、%FPRD1、%FPRD2、%FPRD3、%FPRD4、%FPRD5、%FPRD6、%FPRD7、%FPRD8、%FPRD9、%FPRD10、%FPRD11、%FPRD12、%FPRD13、%FPRD14、および %FPRD15)

10 進形式で単精度浮動小数点レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %FPRDn 変数に値を代入します。

10 進浮動小数点および 64 ビットのハードウェアが両方とも存在しない場合、これらの変数はサポートされません。そのような環境でこの変数を参照すると、「未定義のシンボル」であることを示すメッセージが表示されます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%GPRn

(%GPR0 から %GPR15)

プログラム内の割り込み時点の 32 ビット汎用レジスターを表します。

これらのレジスターの 1 つを変更するには、関連 の %GPRn 変数に値を代入します。

使用上の注意

C および C++ のみ:

COBOL:

MOVE name_table TO %GPR15;

C および C++:

%GPR15=name_table;

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%GPRGn

(%GPRG0 から %GPRG15)

プログラム内の割り込み時点の 64 ビット汎用レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %GPRGn 変数に値を代入します。

使用上の注意

アセンブラー:

LIST %GPRG0;
%GPRG0 = 12;

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%HARDWARE

アプリケーション・プログラムが実行されているハードウェアの タイプを識別します。可能な値は 370/ESA です。

%LINE または %STATEMENT

現在の行番号が含まれます。

現行ステートメントがその行の最初のステートメント でない場合、行番号の後に、ピリオドとそのステートメントのその行での番号 が続きます。例えば、%LINE = 4.3 の 場合、現行ステートメントは 4 番目のソース行の 3 番目の ステートメントです。

プログラムがブロックの入り口または出口に ある場合、%LINE には ENTRY また は EXIT がそれぞれ含まれます。

行番号が判別できない (例えば、実行時行番号が存在しない、または プログラムが割り込まれた位置のアドレスがプログラムに ない) 場合、%LINE にはアスタリスク (*) が入ります。

COBOL の場合、%LINE はラベルに対する関連の verb (行内) を戻さない。

%LINE は、%STATEMENT と同等です。

逆アセンブル表示では、%LINE および %STATEMENT はサポートされていません。

%LOAD

現行プログラムが、取り出されたロード・モジュールまたは呼び出されたロード・モジュールの一部である場合、%LOAD にはそのロード・モジュールの名前が含まれます。

現行プログラムが、最初にロードされたロード・モジュールの中に ある場合、%LOAD にはアスタリスク (*) が 入ります。

プログラムまたは変数への非修飾参照を行うとき、Debug Tool は %LOAD の値を使用します。

現行ロード・モジュールを変更する には、SET QUALIFY コマンドを使用します。

動的デバッグ機能が非活動化されているか (SET DYNDEBUG OFF コマンドを入力)、 または SVC スクリーニング 2が使用不可にされている 場合、Debug Tool は、MVS LOAD サービスに よってロードされたロード・モジュールを認識しません。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%LPRn または %LPRHn (%LPRHn アセンブラーおよび逆アセンブリーのみ)

(%LPR0、%LPR1、%LPR2、%LPR3、%LPR4、%LPR5、%LPR6、%LPR7、%LPR8、%LPR9、%LPR10、%LPR11、%LPR12、%LPR13、%LPR14、および %LPR15 ならびに %LPRH0、%LPRH1、%LPRH2、%LPRH3、%LPRH4、%LPRH5、%LPRH6、%LPRH7、%LPRH8、%LPRH9、%LPRH10、%LPRH11、%LPRH12、%LPRH13、%LPRH14、および %LPRH15)

16 進形式で倍精度浮動小数点レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %LPRn または %LPRHn 変数に値を代入します。

%LPRn は、Enterprise PL/I プログラムをデバッグするときの代入のターゲットとして使用することはできません。

使用上の注意

アセンブラーおよび逆アセンブリーの場合、LIST %LPRn コマンドは 16 進で値を表示しますが、LIST %LPRHn コマンドでは 16 進浮動小数点で値がリストされます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%LPRBn (アセンブラーおよび逆アセンブリーのみ)

(%LPRB0、%LPRB1、%LPRB2、%LPRB3、%LPRB4、%LPRB5、%LPRB6、%LPRB7、%LPRB8、%LPRB9、%LPRB10、%LPRB11、%LPRB12、%LPRB13、%LPRB14、および %LPRB15)

2 進形式で倍精度浮動小数点レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %LPRBn 変数に値を代入します。

64 ビットのハードウェアが存在しない場合、これらの変数はサポートされません。そのような環境でこの変数を参照すると、「未定義のシンボル」であることを示すメッセージが表示されます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%LPRDn (アセンブラーおよび逆アセンブリーのみ)

(%LPRD0、%LPRD1、%LPRD2、%LPRD3、%LPRD4、%LPRD5、%LPRD6、%LPRD7、%LPRD8、%LPRD9、%LPRD10、%LPRD11、%LPRD12、%LPRD13、%LPRD14、および %LPRD15)

10 進形式で倍精度浮動小数点レジスターを表します。

これらのレジスターの 1 つを変更するには、関連の %LPRDn 変数に値を代入します。

10 進浮動小数点および 64 ビットのハードウェアが両方とも存在しない場合、これらの変数はサポートされません。そのような環境でこの変数を参照すると、「未定義のシンボル」であることを示すメッセージが表示されます。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。

%NLANGUAGE

現在使用されている各国語 (ENGLISHUENGLISHJAPANESE、または KOREAN) を示します。

%PATHCODE

プログラム実行のパスが不連続点に達し、パス条件が発生したときに 行われる変更の種類を識別する整数値が含まれています。

可能な値は、プログラムで使用されている言語によって異なります。

記録されたステートメントを再生している場合、%PATHCODE 変数を使用することはできません。

%PLANGUAGE

現在使用されているプログラム言語を示します。

%PLANGUAGE は、C と C++ の両方の場合に C を戻します。

%PROGMASK (アセンブラーおよび逆アセンブリーのみ)

現 PSW のプログラム・マスク部分が含まれます。

%PROGRAM

現行プログラムの 1 次入り口点の名前が含まれます。

%PROGRAM%CU と同等です。詳しくは、%CUを参照してください。

%PSW (アセンブラーおよび逆アセンブリーのみ)

現行のプログラム状況ワードが含まれます。

%RC

Debug Tool コマンドが終了したときの戻りコードが含まれます。

%RC はログ・ファイルがオープンできない場合以外は、初期値がゼロです。ログ・ファイルがオープンできない場合の初期値は -1 です。

注:
%RC 戻りコードは、Debug Tool 変数です。その値は、レジスター 15 にある戻りコードとは関連がありません。

%RSTDSETS

ユーザー設定が SET RESTORE SETTINGS AUTO コマンドまたは RESTORE SETTINGS コマンドによって復元されている場合は値 1、それ以外の場合は値 0 が含まれます。

使用上の注意

この変数を、設定ファイルまたはコマンド・ファイルで %IF ステートメントの一部として使用して、復元された SET の値が変更されないようにすることができます。

%RUNMODE

Debug Tool の表示モードを識別するストリングを含む。指定可能な値のリストは次のとおりです。

%Rn

(%R0 から %R15)

現在使用できるアセンブラーまたは逆アセンブリー CU の汎用レジスターを表します。 このシンボルは、他の言語の CU では無効です。 さらに、このシンボルは、 現在活動状態ではないアセンブラーおよび逆アセンブリー CU、または 該当する汎用レジスターが見つからないアセンブラーおよび逆アセンブリー CU では未定義です。 以下のいずれかの場合にのみ、活動状態のアセンブラーおよび逆アセンブリー CU のレジスターを見つけることができます。

これらのレジスターのいずれかを変更するには、関連の %Rn 変数に値を代入します。

使用上の注意

LIST %R1 ;

%R7 = 0 ;

%SUBSYSTEM

このプログラムが実行される際の基盤となるサブシステムがある場合、その名前を含む。指定可能な値のリストは次のとおりです。

%SYSTEM

このプログラムをサポートするオペレーティング・システムの名前が含まれます。可能な値は、MVS のみです。

異なる言語での Debug Tool 変数の属性

下の表は、異なるプログラム言語で使用するとき の Debug Tool 変数の属性を示します。

Debug Tool 変数 C および C++ 属性 COBOL 属性 PL/I 属性 アセンブラー/逆アセンブリー属性
%ADDRESS void * USAGE POINTER POINTER A
%AMODE signed short int PICTURE S9(4) USAGE COMP FIXED BINARY(15,0) H
%BLOCK unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%CAAADDRESS void * USAGE POINTER POINTER A
%CC なし なし なし H
%CONDITION unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%COUNTRY unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%CU unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%EPA void * USAGE POINTER POINTER A
%EPRn long double なし FLOAT DECIMAL(33) L
%EPRBn なし なし なし LB
%EPRDn なし なし なし LD
%EPRHn なし なし なし LH
%FPRn float USAGE COMP-1 FLOAT DECIMAL(6) E
%FPRBn なし なし なし EB
%FPRDn なし なし なし ED
%FPRHn なし なし なし EH
%GPRn signed int PICTURE S9(9) FIXED BINARY(31,0) F
%GPRGn なし なし なし FD
%HARDWARE unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%LINE または %STATEMENT unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%LOAD unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%LPRn double USAGE COMP-2 FLOAT DECIMAL(16) D
%LPRBn なし なし なし DB
%LPRDn なし なし なし DD
%LPRHn なし なし なし DH
%NLANGUAGE unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%PATHCODE signed short int PICTURE S9(4) USAGE COMP FIXED BINARY(15,0) H
%PLANGUAGE unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%PROGMASK なし なし なし H
%PROGRAM unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%PSW なし なし なし CL8
%RC signed short int PICTURE S9(4) USAGE COMP FIXED BINARY(15,0) H
%RSTDSETS signed int PICTURE S9(9) USAGE COMP FIXED BINARY(31,0) F
%RUNMODE unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%Rn なし なし なし F
%SUBSYSTEM unsigned char[] PICTURE X(j) CHARACTER(j) CLj
%SYSTEM unsigned char[] PICTURE X(j) CHARACTER(j) CLj

2.
SVC スクリーニングの制御方法については、 「Debug Tool カスタマイズ・ガイド」を参照してください。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)