Rational Developer for System z、バージョン 7.6.1

Debug Tool コマンドの共通構文エレメント

構文エレメントのなかには、複数の Debug Tool コマンドで使用されるものがあります。このようなエレメントについては、下記のトピックで説明 します。次に示す構文エレメントの一部は総称であり、構文図を必要としません。

このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。

address

メモリー内の場所の 16 進アドレス。address には、最大 16 個の 16 進数字を使用できます。address に 8 個を超える有効 16 進数字が含まれていると、Debug Tool は、address は 64 ビット・アドレス可能ストレージを参照するとみなします。address に、7 または 8 個の有効 16 進数字が含まれている場合、Debug Tool は、address は 31 ビット・アドレス可能ストレージを参照するとみなします。 それ以外の場合、Debug Tool は、address は 24 ビット・アドレス可能ストレージを参照するとみなします。

コード (命令) および保存域の参照には、8 個以下の有効 16 進数字しか使用できません。

address は、次のいずれかの形式でなければなりません。

block_name

block_name は、次のものを識別します。

現行のブロック修飾は、SET QUALIFY BLOCK コマンドを使用して変更できます。

ユーザーは、現行のエンクレーブで認識されているブロックに対してのみ、block_name を使用することができます。

block_spec

block_spec は、デバッグ中のプログラム内の ブロックを識別します。

block_spec 文節の構文図
block_name
ブロックの名前。block_nameを参照してください。
%BLOCK
現在修飾されているブロックを表します。Debug Tool の変数を参照してください。
cu_spec
有効なコンパイル単位の指定。cu_specを参照 してください。

ユーザーは、現行のエンクレーブで認識されているブロックに対してのみ、block_name を使用することができます。

このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。

condition

単純な関係条件。 関係条件を構成する個々の規則は、プログラム言語の現行設定によって異なります。

このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。

compile_unit_name

compile_unit_name は、次の項目を識別します。

コンパイル単位名が現行のプログラム言語での有効な ID になって いない場合、現行のプログラム言語 での文字ストリング定数として入力する必要があります。

現行のコンパイル単位の修飾は、SET QUALIFY CU コマンドを使用して変更できます。

cu_spec

cu_spec は、デバッグ中のアプリケーション内の コンパイル単位を識別します。PL/I では、コンパイル単位名はプログラムの最外部のプロシージャー名と同じになります。

cu_spec 文節の構文図

cu_spec を省略すると、現行のロード・モジュール修飾が使用されます。

compile_unit_name
コンパイル単位の名前。プログラム言語によって異なります。compile_unit_nameを参照してください。
load_spec
ロード・モジュールの名前。load_specを参照してください。
%CU
現在修飾されているコンパイル単位を表します。%CU は、%PROGRAM と同等です。
%PROGRAM
%CU と同等です。

cu_spec を使用できるのは、現在実行中のエンクレーブ内の コンパイル単位のみを指定する場合です。したがって、ユーザーは変数名、関数名、ラベル、および statement_id のみを現行のエンクレーブのコンパイル単位内のブロックに対して修飾することができます。

このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。

とは、参照と値を生じる演算子の組み合わせです。例えば、単一の定数、プログラム、セッション、Debug Tool 変数、組み込み関数参照であったり、あるいは、定数、変数、組み込み関数参照の組み合わせや、演算子と句読記号 (括弧など) です。

式を形作るための特定の規則は、現行のプログラム言語の設定値、および Debug Tool が実行されている言語の実行時ライブラリーのリリース・ レベルによって異なります。例えば、Debug Tool のバージョンをアップグレードせずに HLL コンパイラーの バージョンをアップグレードすると、ある種のアプリケーション・プログラミング・インターフェース の矛盾が生じる可能性があります。

現行のエンクレーブ内の変数に対してのみ式を使用できます。

このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。

load_module_name

load_module_name は、サポートされる HLL ロード・サービスまたはサブシステムによってロードされたファイル、オブジェクト、またはダイナミック・リンク・ライブラリー (DLL) の名前です。例えば、エンクレーブはロード・モジュールを含み、ロード・ モジュールにはコンパイル単位が含まれているという関係になります。

C の場合、ストリングとして指定されたロード・モジュール名に含まれる エスケープ・シーケンスは、そのストリングが修飾ステートメントの一部分である場合には処理されません。

load_module_name が、修飾子としてそれを使用することを許可する名前から省略されると、現行のロード・モジュールの修飾が想定されます。load_module_name は、SET QUALIFY LOAD コマンドを使用して変更できます。

2 つのエンクレーブに含まれるモジュールが重複する場合、モジュールの中の コンパイル単位に対する参照は不明確になるので、エラーのフラグが立ちます。しかし、コンパイル単位が現在実行中のロード・モジュールにある場合は、その ロード・モジュールが該当すると見なされ、あいまいさに対するチェックは行いません。したがって、Debug Tool にとって、ロード・モジュール名は固有なものである 必要があります。

load_spec

load_spec は、デバッグ中のプログラム内のロード・モジュールを 識別します。

load_spec 文節の構文図

load_spec は、現行のプログラム言語でストリング定数として指定することができます。例えば、C ではストリング・リテラルであり、COBOL では文字リテラルです。そのように指定しない場合は、現行のプログラム言語で 有効な ID でなければなりません。

load_module_name
サポートされる HLL ロード・サービスまたはサブシステムによりロードされた、ファイル、オブジェクト、またはダイナミック・リンク・ライブラリー (DLL) の名前です。load_module_nameを参照してください。
%LOAD
現在修飾されているロード・モジュールを表します。

このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。

offset_spec

offset_spec は、オフセットの指定を識別します。

offset_spec 文節の構文図
offset
ソース・ウィンドウの接頭部域に表示される、逆アセンブル表示の 16 進数オフセット。

このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。

参照

参照は、最終的にストレージの領域に解決されるのサブセット、すなわち、代入ステートメントのターゲットに成りうるものを 表します。参照とは、例えば、プログラム変数、セッション変数、または Debug Tool 変数、配列 または配列エレメント、もしくは構造または構造エレメントなどであり、これらはいずれもポインター修飾 となり得ます (プログラム言語で認められる場合)。参照内での ID は、構造名および項目が可視であるブロックの名を含める ことにより、オプションとして修飾することができます。これには、任意で添え字およびサブストリング修飾子が続けられますが、現行の プログラム言語の規則に従います。

修飾つきの参照を指定する場合、修飾子として、参照対象を含む すべての構造とブロックを組み込み、オプションとして、ロード・モジュール名の修飾子で始めることができます。 例えば、現行のプログラム言語の設定が C である場合、mod::>cu:>proc:>struc1.struc2.array[23] のように指定します。 しかし、アセンブラー、逆アセンブリー、および非言語環境プログラム COBOL では、変数名を、ロード・モジュール、コンパイル単位、 またはブロック名で修飾することはできません。

現行のプログラム言語の設定が C および C++ の場合、lvalue という用語が、参照という語の代わりに使用されます。

Enterprise PL/I バージョン 3.5 (APAR PK35230 および PK35489 の PTF 適用) より前のバージョンでコンパイルされた プログラムをデバッグする場合、Debug Tool では block_speccu_spec、または load_spec を組み込む、 修飾付き参照の使用をサポートしません。

以下のいずれかのコンパイラーでコンパイルされ、次の環境で実行しているプログラムをデバッグする場合、Debug Tool は、block_speccu_spec、またはload_spec を含む修飾付き参照の使用をサポートします。

Enterprise PL/I コンパイラーでコンパイルしたプログラムをデバッグしていて、Debug Tool がブロックの入り口にある場合には、入力されているブロックで宣言された 変数を組み込む変数または式をリストまたは参照することはできません。

COBOL 参照では、データ名を使用することができます。COBOL 言語の規則に従って、以下のいずれかのデータ名を使用することができます。

COBOL 参照では、以下の特殊レジスター以外の特殊レジスターを使用することができます。

参照を形作るための特定の規則は、現行のプログラム言語の設定値、および Debug Tool が実行されている言語の実行時ライブラリーのリリース・ レベルによって異なります。例えば、Debug Tool のバージョンをアップグレードせずに HLL コンパイラーの バージョンをアップグレードすると、ある種のアプリケーション・プログラミング・インターフェース の矛盾が生じる可能性があります。

statement_id

statement_id は、現行のプログラム言語に適切な方法で、実行可能ステートメントを識別します。ステートメント ID には、ステートメント番号、シーケンス番号、またはソースの行番号が使用できます。ステートメント ID は、integer または integer.integer (最初の integer は行番号で、2 番目の integer は相対ステートメント番号) です。例えば、3 行目にある最初の相対ステートメントを示すには、33.0、または 3.1 と指定することができます。C、C++、COBOL、および PL/I では、ソース行内で複数のステートメントまたは verb を使用することができます。

ステートメント ID を使用できるのは、現行のエンクレーブで認識されて いるステートメントに対してのみです。

statement_id_range および stmt_id_spec

statement_id_range は、ソース・ステートメント ID または ステートメント ID の範囲を識別します。stmt_id_spec は、ステートメント ID の指定を識別します。

statement_id_range and stmt_id_spec 文節の構文図
block_spec
有効なブロック指定。デフォルトは、現在修飾されているブロックです。現在サポートされるプログラム言語では、コンパイル単位内でステートメント ID が固有なため、ブロック修飾は無効です。したがって、ブロック修飾は無視されます。
cu_spec
有効なコンパイル単位の指定。cu_specを参照してください。デフォルトは、現在修飾されているコンパイル単位です。
statement_id
有効なステートメント ID 番号。statement_idを参照してください。
%LINE
現在中断されているソース・ステートメントまたは行を表します。Debug Tool の変数を参照してください。 %LINE は、%STATEMENT と同等です。
%STATEMENT
%LINE と同等です。

ステートメントの範囲の指定

ステートメントの範囲は、開始および終了のステートメント ID を 指定することによって識別でき、ハイフン (-) によって区切られます。現行のプログラム言語の設定が COBOL の場合、ハイフン (-) の前後にはブランクがなければなりません。C および C++ および PL/I の場合、ブランクはオプションです。開始および終了の 2 つのステートメント ID は同じブロック内になければならないため、2 番目のステートメントをソース・プログラム内で最初のステートメントより 前に記述すること、および同じステートメントを使用することはできません。

単一のステートメント ID もまた、ステートメント ID 範囲として認められ、同じステートメントで開始および終了すると見なされます。単一ステートメント ID の範囲は、複数ステートメント行の場合でも、1 つのステートメントまたは verb で構成されます。

このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。

statement_label

statement_label は、そのソース・ラベルを使用して ステートメントを識別します。修飾されたステートメント・ラベルを指定する場合、それを含んでいるすべてのコンパイル単位名およびブロック名を組み込み、任意にロード・モジュール名の 修飾子で開始します。例えば、次のようになります。

mod::>proc1:>proc2:>block1:>start

ラベルの形式は、現行のプログラム言語によって異なります。

ステートメント・ラベルは、現行のエンクレーブで認識されているラベルに対してのみ使用できます。

variable_name

変更可能な値を表す連続したテキスト・ストリング。 複数の異なるプログラミング言語で使用可能な variable_name を作成できます。 variable_name は、以下の構文規則に準拠している必要があります。

Debug Tool は、プログラミング言語に固有の構文規則で記述された variable_name の作成もサポートします。 ただし、特定のプログラミング言語構文に対して記述された variable_name を作成する場合、別のプログラミング言語で作成されたプログラムでこの variable_name を使用することはできません。 例えば、COBOL では、変数名にはダッシュ文字 (-) を使用できます。ダッシュを含む variable_name を作成した場合、この variable_name を PL/I または C/C++ プログラムで使用することはできません。


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

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