構文エレメントのなかには、複数の Debug Tool コマンドで使用されるものがあります。このようなエレメントについては、下記のトピックで説明 します。次に示す構文エレメントの一部は総称であり、構文図を必要としません。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
メモリー内の位置を表す 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 は、以下のいずれかの形式にする必要があります。
COBOL または非言語環境プログラム の COBOL の場合は、X の後に、アポストロフィ (') または引用符 (") で囲んだ 16 進値を続ける。
block_name は、次のものを識別します。
現行のブロック修飾は、SET QUALIFY BLOCK コマンドを使用して変更できます。
ユーザーは、現行のエンクレーブで認識されているブロックに対してのみ、block_name を使用することができます。
block_spec は、デバッグ中のプログラム内の ブロックを識別します。

ユーザーは、現行のエンクレーブで認識されているブロックに対してのみ、block_name を使用することができます。
int function(int, int) is function(int, int)
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
単純な関係条件。 関係条件を構成する個々の規則は、プログラム言語の現行設定によって異なります。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
compile_unit_name は、次のものを識別します。 items:
コンパイル単位名が現行のプログラム言語での有効な ID になって いない場合、現行のプログラム言語 での文字ストリング定数として入力する必要があります。
現行のコンパイル単位の修飾は、SET QUALIFY CU コマンドを使用して変更できます。
cu_spec は、デバッグ中のアプリケーション内の コンパイル単位を識別します。PL/I では、コンパイル単位名はプログラムの最外部のプロシージャー名と同じになります。

cu_spec を省略すると、現行のロード・モジュール修飾が使用されます。
cu_spec を使用できるのは、現在実行中のエンクレーブ内の コンパイル単位のみを指定する場合です。したがって、ユーザーは変数名、関数名、ラベル、および statement_id のみを現行のエンクレーブのコンパイル単位内のブロックに対して修飾することができます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
式 とは、参照 と値を生じる演算子の組み合わせです。例えば、単一の定数、プログラム、セッション、Debug Tool 変数、組み込み関数参照であったり、あるいは、定数、変数、組み込み関数参照の組み合わせや、演算子と句読記号 (括弧など) です。
式を形作るための特定の規則は、現行のプログラム言語の設定値、および Debug Tool が実行されている言語の実行時ライブラリーのリリース・ レベルによって異なります。例えば、Debug Tool のバージョンをアップグレードせずに HLL コンパイラーの バージョンをアップグレードすると、ある種のアプリケーション・プログラミング・インターフェース の矛盾が生じる可能性があります。
現行のエンクレーブ内の変数に対してのみ式を使用できます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
load_module_name は、サポートされる HLL ロード・サービスまたはサブシステムによってロードされたファイル、オブジェクト、またはダイナミック・リンク・ライブラリー (DLL) の名前です。例えば、エンクレーブはロード・モジュールを含み、ロード・ モジュールにはコンパイル単位が含まれているという関係になります。
C の場合、ストリングとして指定されたロード・モジュール名に含まれる エスケープ・シーケンスは、そのストリングが修飾ステートメントの一部分である場合には処理されません。
load_module_name が、修飾子としてそれを使用することを許可する名前から省略されると、現行のロード・モジュールの修飾が想定されます。load_module_name は、SET QUALIFY LOAD コマンドを使用して変更できます。
2 つのエンクレーブに含まれるモジュールが重複する場合、モジュールの中の コンパイル単位に対する参照はあいまいになるので、エラーのフラグが立ちます。しかし、コンパイル単位が現在実行中のロード・モジュールにある場合は、その ロード・モジュールが該当すると見なされ、あいまいさに対するチェックは行いません。したがって、Debug Tool にとって、ロード・モジュール名は固有なものである 必要があります。
load_spec は、デバッグ中のプログラム内のロード・モジュールを 識別します。

load_spec は、現行のプログラム言語でストリング定数として指定することができます。例えば、C ではストリング・リテラルであり、COBOL では文字リテラルです。そのように指定しない場合は、現行のプログラム言語で 有効な識別名でなければなりません。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
offset_spec は、オフセットの指定を識別します。

ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
参照 は、最終的にストレージの領域に解決される式 のサブセット、すなわち、代入ステートメントのターゲットに成りうるものを 表します。参照とは、例えば、プログラム変数、セッション変数、または Debug Tool 変数、配列 または配列エレメント、もしくは構造または構造エレメントなどであり、これらはいずれもポインター修飾 となり得ます (プログラム言語で認められる場合)。参照内での識別名は、構造名および項目が可視であるブロックの名を含める ことにより、オプションとして修飾することができます。これには、任意で添え字およびサブストリング修飾子が続けられますが、現行の プログラム言語の規則に従います。
修飾つきの参照を指定する場合、修飾子として、参照対象を含む すべての構造とブロックを組み込み、オプションとして、ロード・モジュール名の修飾子で始めることができます。例えば、現行のプログラム言語の設定が C である場合、mod::>cu:>proc:>struc1.struc2.array[23] のように指定します。 ただし、アセンブラー、逆アセンブリー、および非言語環境プログラム の COBOL では、変数名をロード・モジュール、コンパイル単位、またはブロック名で修飾することはできません。
現行のプログラム言語の設定が C および C++ の場合、lvalue という用語が、参照という語の代わりに使用されます。
Enterprise PL/I バージョン 3.5 (APAR PK35230 および PK35489 用の PTF を適用済み) より前のバージョンでコンパイルしたプログラムをデバッグする場合、Debug Tool では block_spec、cu_spec、または load_spec を組み込む修飾付き参照の使用をサポートしません。
以下の上記 2 つのいずれかのコンパイラーでコンパイルして下の環境で実行するプログラムをデバッグする場合、Debug Tool は、block_spec、cu_spec、または load_spec を組み込む修飾付き参照の使用をサポートします。
Enterprise PL/I コンパイラーでコンパイルしたプログラムをデバッグしていて、Debug Tool がブロックの入り口にある場合には、入力されているブロックで宣言された 変数を組み込む変数または式をリストまたは参照することはできません。
COBOL 参照では、データ名を使用することができます。COBOL 言語の規則に従って、以下のいずれかのデータ名を使用することができます。
COBOL 参照では、以下の特殊レジスター以外の特殊レジスターを使用することができます。
参照を形作るための特定の規則は、現行のプログラム言語の設定値、および Debug Tool が実行されている言語の実行時ライブラリーのリリース・ レベルによって異なります。例えば、Debug Tool のバージョンをアップグレードせずに HLL コンパイラーの バージョンをアップグレードすると、ある種のアプリケーション・プログラミング・インターフェース の矛盾が生じる可能性があります。
statement_id は、現行のプログラム言語に適切な方法で、実行可能ステートメントを識別します。ステートメント ID には、ステートメント番号、シーケンス番号、またはソースの行番号が使用できます。ステートメント ID は、integer または integer.integer です (最初の integer は行番号で、2 番目の integer は相対ステートメント番号)。例えば、3 行目にある相対ステートメントを示すには、3、3.0、または 3.1 と指定することができます。C、C++、COBOL、および PL/I では、ソース行内で複数のステートメントまたは verb を使用することができます。
ステートメント ID を使用できるのは、現行のエンクレーブで認識されて いるステートメントに対してのみです。
statement_id_range は、ソース・ステートメント ID または ステートメント ID の範囲を識別します。stmt_id_spec は、ステートメント ID の指定を識別します。

ステートメントの範囲は、開始および終了のステートメント ID を 指定することによって識別でき、ハイフン (-) によって区切られます。現行のプログラム言語の設定が COBOL の場合、ハイフン (-) の前後にはブランクがなければなりません。C および C++ および PL/I の場合、ブランクはオプションです。開始および終了の 2 つのステートメント ID は同じブロック内になければならない ため、2 番目のステートメントをソース・プログラム内で最初のステートメントより 前に記述すること、および同じステートメントを使用することはできません。
単一のステートメント ID もまた、ステートメント ID 範囲として認められ、同じステートメントで開始および終了すると見なされます。単一ステートメント ID の範囲は、複数ステートメント行の場合でも、1 つのステートメントまたは verb で構成されます。
ここで述べた内容に関して詳しくは、以下のトピックを参照してください。
statement_label は、そのソース・ラベルを使用して ステートメントを識別します。修飾されたステートメント・ラベルを指定する場合、それを含んでいるすべてのコンパイル単位名およびブロック名を組み込み、任意にロード・モジュール名の 修飾子で開始します。例えば、次のようになります。
mod::>proc1:>proc2:>block1:>start
ラベルの形式は、現行のプログラム言語によって異なります。
ステートメント・ラベルは、現行のエンクレーブで認識されているラベルに対してのみ使用できます。
変更可能な値を表す、連続するテキスト・ストリング。異なる複数のプログラム言語で使用可能な variable_name を作成できます。variable_name は、以下の構文規則に従う必要があります。
Debug Tool は、プログラム言語に固有の構文規則に従って書かれた variable_name の作成もサポートします。ただし、特定のプログラム言語構文に従って書かれた variable_name を作成した場合、その variable_name は、異なるプログラム言語で書かれたプログラムでは使用できません。例えば、COBOL では変数名にダッシュ文字 (-) を含めることができます。ダッシュを含む variable_name を作成した場合、その variable_name は、PL/I または C/C++ プログラムでは使用できません。