付録D.2 リストの見方
リストのヘッダと各リストの見方について説明します。
(1) リストのヘッダ
|
-
COBOL2002:COBOL2002であることの記述
-
(c):COBOL2002の識別記号
識別記号については「付録K.2 このマニュアルでの表記」を参照
-
VV-RR:COBOL2002のバージョン番号
-
CCC・・・CCC:リストの名称(「情報リスト」または,「原始プログラムリスト」)
-
YYYY-MM-DD:コンパイル日付(年-月-日)
-
HH:MM:SS:コンパイル時刻(時:分:秒)
(2) 情報リスト
情報リストの出力形式を次に示します。リスト1行当たりのカラム数は80カラムです。
|
-
プログラム名
- a.
-
IDENTIFICATION DIVISIONの行番号
- b.
-
最外側の原始プログラムのPROGRAM-ID段落で指定した名称
- c.
-
PROGRAM-ID段落で指定されたプログラム属性
出力内容は,INITIAL/RECURSIVEのどちらかとなります。
PROGRAM-ID段落でプログラム属性を指定していない場合は出力されません。
スタックコンパイル機能(連続コンパイル機能)を使用している場合,最外側のプログラム定義が複数ある場合があります。この場合,プログラム名は1行に一つずつ出力されます。
-
クラス名
- a.
-
IDENTIFICATION DIVISIONの行番号
- b.
-
CLASS-ID段落で指定した名称
- c.
-
CLASS-ID段落で指定した属性
出力内容は,FINALだけとなります。
属性が指定されていない場合は,出力されません。
スタックコンパイル機能(連続コンパイル機能)を使用している場合,クラス定義が複数ある場合があります。この場合,クラス名は1行に一つずつ出力されます。
-
インタフェース名
- a.
-
IDENTIFICATION DIVISIONの行番号
- b.
-
INTERFACE-ID段落で指定した名称
スタックコンパイル機能(連続コンパイル機能)を使用している場合,インタフェース定義が複数ある場合があります。この場合,インタフェース名は1行に一つずつ出力されます。
-
関数名
- a.
-
IDENTIFICATION DIVISIONの行番号
- b.
-
FUNCTION-ID段落で指定した名称
スタックコンパイル機能(連続コンパイル機能)を使用している場合,関数定義が複数ある場合があります。この場合,関数名は1行に一つずつ出力されます。
-
入力ファイル名:コンパイラに入力したファイルの名称
-
エラー総数:発生したエラーの総数
ただし,メッセージ番号9000番台以降を除きます。また,Uレベル(回復不能)エラーの個数を含みます。
エラー総数が0以外の場合,Wレベル,Sレベルが必ず表示されます。
Wレベル:警告エラーの個数
Sレベル:重大エラーの個数
情報提示レベルのメッセージが発生した場合,Iレベルが表示されます。
Iレベル:情報提示レベルのメッセージ
-
オプション:コンパイル時に有効となったコンパイラオプション
オプションは,1行に一つずつ出力されます。ただし,80カラムを超えた場合は,次の行に出力されます。
-
入力ソース枚数:入力した原始プログラムのレコード枚数
主入力:主入力のレコード枚数
登録集:登録集のレコード枚数
記述項:データ名の個数
文:手続き部の文の個数
ただし,「文」には,ELSE,END動詞は含みません。また,EXEC SQL 〜 END-EXECは1文として数えます。
-
登録集原文名
行番号:COPY文が記述されている原始プログラム中の行番号
登録集原文名:COPY文で取り込む登録集原文が格納されているファイルの名称
-
リポジトリファイル名
行番号:構成節中でクラス名/インタフェース名が指定された行番号
リポジトリファイル名:取り込んだリポジトリファイル名(絶対パス)
-
サブスキーマ情報
行番号:サブスキーマ名が記述されている原始プログラム中の行番号
サブスキーマ名:サブスキーマ名
スキーマ名:スキーマ名
-
ファイル情報
行番号:入出力処理で使用するファイルを定義している行番号
ファイル名:ファイル記述項で指定したファイル名
- 編成:ファイル編成
-
S:順編成ファイル
SX:XMAP3のプリンタ(AIX(32)で有効)だけを使用する順編成ファイル
Sx:実行時にXMAP3のプリンタ(AIX(32)で有効),または順編成ファイルの使用を指定できるファイル
I:索引編成ファイル
R:相対編成ファイル
T:テキスト編成ファイル
SR:整列用ファイル
CV:CSV編成ファイル
RB:HiRDBによる索引編成ファイル
- アクセス:ファイルのアクセス法
-
SEQ:順アクセス
RAN:乱アクセス
DYN:動的アクセス
- OPEN種別:ファイルオープンの目的の種別
-
I:INPUT
O:OUTPUT
I-O:I-O
E:EXTEND
-
外部プログラム名
CALL文で呼び出す外部プログラムの名称
80カラムを超えた場合は,次の行に出力されます。
コンパイラ内部で生成したCALL文の外部プログラム名は出力されません。
また,スタックコンパイルの場合は,翻訳グループ内で解決済みの外部プログラム名は出力されません。
-
内部プログラム名
- a.
-
内部プログラム(最外側のプログラム以外のプログラム)のIDENTIFICATION DIVISIONの行番号
- b.
-
内部プログラムのPROGRAM-ID段落で指定したプログラム名
80カラムを超えた場合は,次の行に出力されます。
- c.
-
内部プログラムのPROGRAM-ID段落で指定されたプログラム属性
PROGRAM-ID段落でプログラム属性が指定されていない場合は出力されません。
内部プログラムが複数ある場合,内部プログラム名は1行に一つずつ出力されます。
ここで表示される内容および形式は,1.のプログラム名と同じです。
-
ファクトリメソッド名
- a.
-
ファクトリメソッドのIDENTIFICATION DIVISIONの行番号
- b.
-
ファクトリメソッドのMETHOD-ID段落で指定したメソッド名
- c.
-
METHOD-ID段落で指定した属性
出力内容は,FINAL/OVERRIDE/GET PROPERTY/SET PROPERTYとなります。ただし,SET PROPERTY/GET PROPERTYは,ほかの属性と同時に指定できません。
また,メソッド名だけの場合は,何も出力されません。
クラスを継承している場合,スーパクラスのファクトリメソッド名は出力されません。また,インタフェースを継承している場合,継承されているインタフェースのメソッド名は出力されません。
-
インスタンスメソッド名
- a.
-
インスタンスメソッドのIDENTIFICATION DIVISIONの行番号
- b.
-
インスタンスメソッドのMETHOD-ID段落で指定したメソッド名
- c.
-
METHOD-ID段落で指定した属性
出力内容は,FINAL/OVERRIDE/GET PROPERTY/SET PROPERTYとなります。ただし,SET PROPERTY/GET PROPERTYは,ほかの属性と同時に指定できません。
また,メソッド名だけの場合は,何も出力されません。
クラスを継承している場合,スーパクラスのファクトリメソッド名およびインスタンスメソッド名は出力されません。また,インタフェースを継承している場合,継承されているインタフェースのメソッド名は出力されません。
-
インタフェース定義中のメソッド情報
- a.
-
インタフェース定義中のメソッドのIDENTIFICATION DIVISIONの行番号
- b.
-
インタフェース定義中のMETHOD-ID段落で指定したメソッド名
- c.
-
METHOD-ID段落で指定された属性
出力内容は,GET PROPERTY/SET PROPERTYのどちらかとなります。
また,メソッド名だけの場合は,何も出力されません。
-
関数名
呼び出している利用者定義関数の名称
- 注意事項
-
-
該当する定義がソース中にない場合,情報リストにその部分は出力されません。
-
SQL情報(SQL構文内の実行文の数)は出力されません。
-
プログラム名などが長くなった場合には,次の行に折り返して出力されます。折り返した場合には,前行の開始位置と同じ位置から開始します。また,行番号は,折り返した行には出力されません。
-
全角文字が折り返しの境界にわたった場合,その全角文字は,次の行に出力されます。
-
(3) 原始プログラムリスト
原始プログラムリストの出力形式を次に示します。リスト1行当たりのカラム数は134カラムです。ただし,自由形式正書法のソースの場合,-EucPositionオプション指定の場合,またはコンパイラ環境変数CBLFIXEDFORMLINE=255が有効な場合はソースの1行の長さによって,307カラムまで拡張されます。
|
-
行番号
COPY文で複写した原始プログラムの行番号が昇順に並ばない場合,この原始プログラムに対してコンパイラが生成した行番号が出力されます。EXEC SQL〜END-EXECの間もコンパイラが生成した行番号が出力されます。また,入力した原始プログラムの行番号が昇順になっていない部分についても,新しい行番号を生成します。これらの行番号は,該当する行の左にゼロサプレス右寄せで出力されます。
-
D
翻訳指令(Compiler Directive)に関する情報
- X
-
条件翻訳の結果,無効になる行に出力されます。
-
CP
COPY文で複写した原始プログラムの種別
- Cn
-
COPY文で複写した原始プログラムが展開された行に出力されます。
「n」は1〜9の整数で,COPY文の入れ子レベルを示します。入れ子レベルが10以上のときは「C*」が出力されます。
- F
-
PREFIXING指定またはSUFFIXING指定のCOPY文の行に出力されます。
COPY文によって展開された行は,通常とCOPY文と同じようにCnを出力します。
- DB
-
サブスキーマによって展開された原始プログラムの行に出力されます。
-
N
プログラムと文の入れ子レベル
プログラムの入れ子レベルは,IDENTIFICATION DIVISIONとEND PROGRAMの行に英字A〜Zの順番で出力されます。Zを超えたときは「#」が出力されます。また,プログラムだけでなく,END METHOD,END FACTORY,END CLASS,END OBJECT,END FUNCTIONのように,IDENTIFICATION DIVISIONと対になるものには,すべて出力されます。
文の入れ子レベルは1〜9の整数で出力されます。10以上のときは「*」が出力されます。1行中に複数の文があって入れ子のレベルが異なるときは,先頭の文の入れ子レベルが出力されます。
-
相互参照
定義/参照している行の参照情報コード
参照情報コードとその意味については,リストの上段で説明しています。
行番号が「,」で区切ってあるときは行中の1データ名が複数行で参照されていることを示し,「;」で区切ってあるときは行中に複数個のデータ名が記述してあることを示します。
次に相互参照情報の見方の例を示します。
- (a)1002行(定義側)
-
YEARSというデータ名は,行番号1500中の2か所と行番号1600および行番号1800で参照されています。参照している行番号を','で区切って表示されます。
- (b)1800行(参照側)
-
YEARSとMTH-PAMは,それぞれ行番号1002と1102で定義されています。これら二つは別名称なので,';'で区切って表示されます。
-
エラーメッセージ
エラーが発生したとき,その直後にエラーメッセージとエラーのカラムの位置が出力されます。カラムの位置は「?」で表示されます。
-
COBOL特殊レジスタ
使用したCOBOL特殊レジスタが原始プログラムの次に出力されます。特殊レジスタを使用しているファイル名とプログラム名も出力されます。
-
既定義オブジェクト
既定義オブジェクトのSELFまたはEXCEPTION-OBJECTの相互参照情報が出力されます。
- 注意事項
-
-
9000番台以降のメッセージは,原始プログラムリスト中に出力されません。
-
SQL文のエラー情報と相互参照情報は出力されません。
-
Uレベル(回復不能)エラー発生時は,リストが最後まで出力されない場合があります。
-
スタックコンパイル機能(連続コンパイル機能)を使用している場合,すべてのプログラムが連続して出力されます。
-
(4) 相対位置表示時の原始プログラムリスト
(a) 原始プログラムリストの内容
-SrcList,xxxxx,DataLocオプション※1指定時,原始プログラムリストの原文の前に相対位置と長さを表示します。COBOLプログラムの実行で異常終了時に出力されるデータ領域ダンプリスト※2と,原始プログラムリストに表示される相対位置を付き合わせることで,プログラムの異常終了時のデータ項目内容を効率良く参照できます。
- 注※1
-
xxxxxは,OutputAll,CopyAll,CopySup,NoCopyのどれかを指定してください。
- 注※2
-
データ領域ダンプリストについては,「36.3 データ領域ダンプリスト」を参照してください。
データロケーションを表示した場合,リスト1行当たりのカラム数は161カラムです。ただし,自由形式正書法のソースの場合,またはコンパイラ環境変数CBLFIXEDFORMLINE=255が有効な場合はソースの1行の長さによって,334カラムまで拡張されます。AIXの場合,-EucPositionオプションが有効なときも,ソースの1行の長さによって,334カラムまで拡張されます。
相対位置表示時の原始プログラムリストの出力形式を次に示します。
|
出力される原始プログラムリストの内容を次に示します。なお,次に示す内容以外のものは,「(3) 原始プログラムリスト」を参照してください。
-
相対位置
この行には,データ項目の相対位置(バイト)を16進数で表示します。相対位置は,データ部のファイル節/作業場所節/局所場所節に定義されたデータ項目に表示します。
-
長さ
この行には,データ項目の長さ(バイト数)を16進数で表示します。
-
O
OCCURS句を含むデータ名またはその従属項目を表します。
-
V
相対位置が可変となるデータ名を表します。
-
0〜7
内部ブール項目の場合にビット位置を表示します。
- 注意事項
-
-
条件名,定数名,指標名およびアドレス名に対しては,相対位置および長さは表示しません。
-
コンパイル時にSレベルまたはUレベルのコンパイルエラーが発生した場合,-SrcList,xxxxx,DataLocオプションの指定があっても相対位置は表示しません。
-
(b) データ領域ダンプリストの出力対象
相対位置をコンパイルリストに表示するにあたり,翻訳単位ごとのデータ領域ダンプリストの出力対象を次の表に示します。なお,コンパイルリストに表示する相対位置は,データ領域ダンプリストに表示されるデータ項目に対して表示します。
節 |
翻訳単位 |
|||||
---|---|---|---|---|---|---|
プログラム定義 |
関数定義 |
インタフェース定義 |
クラス定義 |
|||
メソッド定義 |
ファクトリ定義 |
オブジェクト定義 |
メソッド定義 |
|||
ファイル節 FILE SECTION |
○ |
○ |
− |
○ |
○ |
− |
作業場所節 WORKING-STORAGE SECTION |
○ |
○ |
− |
○ |
○ |
− |
局所場所節 LOCAL-STORAGE SECTION |
○ |
○ |
− |
− |
− |
○ |
連絡節 LINKAGE SECTION |
× |
× |
− |
− |
− |
× |
サブスキーマ節 SUBSCHEMA SECTION |
× |
× |
− |
− |
− |
− |
通信節 COMMUNICATION SECTION |
× |
× |
− |
× |
× |
− |
報告書節 REPORT SECTION |
× |
× |
− |
× |
× |
− |
画面節 SCREEN SECTION※ |
× |
× |
− |
× |
× |
− |
画面節 WINDOW SECTION※ |
× |
× |
− |
× |
× |
− |
- (凡例)
-
○:データ領域ダンプリストに表示される
×:データ領域ダンプリストに表示されない
−:節を指定できない
- 注※
-
AIXで有効です。
(c) データ種別ごとの相対位置表示の可否
データ種別ごとの各節での相対位置の表示の可否を次の表に示します。
データ種別 |
指定された句やデータ名 |
ファイル節※ |
作業場所節※ |
局所場所節 |
---|---|---|---|---|
データ記述項 |
データ名がFILLER |
○ |
○ |
○ |
ADDRESSED句のアドレス名 |
− |
× |
× |
|
ADDRESSED句を含むデータ名 |
− |
○ |
○ |
|
INDEXED句の指標名 |
× |
× |
× |
|
EXTERNAL句 |
○ |
○ |
− |
|
GLOBAL句 |
○ |
○ |
○ |
|
JUSTIFIED句 |
○ |
○ |
○ |
|
OCCURS句 |
○ |
○ |
○ |
|
OCCURS句を含むデータ名の従属項目 |
○ |
○ |
○ |
|
可変反復データ項目に続くデータ項目 |
○ |
○ |
○ |
|
PROPERTY句 |
○ |
○ |
○ |
|
REDEFINES句 |
○ |
○ |
○ |
|
RENAMES句 |
○ |
○ |
○ |
|
SAME AS句を含むデータ名 |
○ |
○ |
○ |
|
SAME AS句を含むデータ名の従属項目 |
△ |
△ |
△ |
|
SYNCHRONIZED句 |
○ |
○ |
○ |
|
TYPE句を含むデータ名 |
○ |
○ |
○ |
|
TYPE句を含むデータ名の従属項目 |
△ |
△ |
△ |
|
TYPEDEF句 |
○ |
○ |
○ |
|
アドレスデータ項目 |
USAGE ADDRESS |
○ |
○ |
○ |
指標データ項目 |
USAGE INDEX |
○ |
○ |
○ |
オブジェクト参照データ項目 |
USAGE OBJECT REFERENCE |
− |
○ |
○ |
ポインタ項目 |
USAGE POINTER |
○ |
○ |
○ |
外部ブール項目 |
USAGE DISPLAY |
○ |
○ |
○ |
内部ブール項目 |
USAGE BIT |
○ |
○ |
○ |
2進項目など |
その他のUSAGE句 |
○ |
○ |
○ |
独立データ項目 |
77レベルのデータ名 |
− |
○ |
○ |
定数名 |
78レベルのデータ名 |
× |
× |
× |
条件名 |
88レベルのデータ名 |
× |
× |
× |
- (凡例)
-
○:相対位置を表示できる
△:従属項目はコンパイルリストに表示されないため,従属項目の相対位置を参照したい場合は,「(d) データ項目ごとの相対位置の見方」の「TYPE句/SAME AS句を含むデータ名の従属項目」を参照のこと
×:相対位置を表示できない
−:節に指定できない
- 注※
-
クラス定義の場合は,データ部先頭からの相対位置となります。
(d) データ項目ごとの相対位置の見方
■ OCCURS句を含むデータ名の従属項目
OCCURS句を含むデータ名の従属項目については,基本データ項目と同様に節の先頭からの相対位置を16進数で表示します。また,OCCURS句を含むデータ名およびその従属項目であることを示す「O」を相対位置の左側に表示します。
OCCURS句を含むデータ名が集団項目の場合の相対位置の表示を次に示します。
なお,要素の相対位置については,次の計算式で求めてください。
- 計算式
-
表中のデータ名の相対位置=参照するデータ名の相対位置の値※+(参照する表要素のその次元での出現番号−1)×表の1要素の長さ
注※
相対位置に「O」の表示があるデータ名
図D‒5 OCCURS句を含むデータ名の従属項目の相対位置の表示
-
O
OCCURS句を含むデータ名またはその従属項目を表します。
- 例:「データ名:DATA312」の3番目の要素の場合
-
表中のデータ名の相対位置=(0x0000001d)+(3−1)×(0x0000000f)
=(0x0000003b)
=59バイト
上記の図に対応したデータ領域ダンプリストの内容を次に示します。
データ領域ダンプリストの<WORKING-STORAGE SECTION>の先頭から(0x0000003b)(59バイト)目の内容を5バイト参照することで,「データ名:DATA312」の3番目の内容を確認できます。
OCCURS句を含むデータ名が基本項目の場合の相対位置の表示を次に示します。
|
- 例:「データ名:DATA31」の3番目の要素の場合
-
表中のデータ名の相対位置=(0x00000018)+(3−1)×(0x00000005)
=(0x00000022)
=34バイト
上記の図に対応したデータ領域ダンプリストの内容を次に示します。
データ領域ダンプリストの<WORKING-STORAGE SECTION>の先頭から(0x00000022)(34バイト)目の内容を5バイト参照することで,「データ名:DATA31」の3番目の要素の内容を確認できます。
■ 可変反復データ項目に続くデータ項目
可変反復データ項目に続くデータ項目は,繰り返し回数によって長さが可変となります。そのため,可変反復データ項目に続くデータ項目の相対位置も可変となります。この可変反復データ項目に続くデータ項目の相対位置は,定義された節の先頭からの相対位置ではなく,最初に現れたデータ項目を0とした相対位置を16進数で表示します。また,相対位置が可変となるデータ名であることを示す「V」を,相対位置の左側に表示します。
相対位置が可変となるデータ名が基本項目の場合の相対位置の表示を次に示します。
|
-
V
相対位置が可変となるデータ名には「V」を表示します。
-
制御変数
DEP1に5を設定しているので,繰り返し回数は5回で計算します。
要素の相対位置については,次の計算式で求めてください。
- 計算式
-
相対位置が可変となるデータ名※1の相対位置=DEPENDING ON指定があるOCCURS句を含むデータ名※2の相対位置の値+プログラムが異常終了した時点の表の繰り返し回数の値※3×表の1要素の長さ※4+参照するデータ名の相対位置の値
注※1
相対位置に「V」の表示があるデータ名
注※2
相対位置に「O」の表示があるデータ名
注※3
OCCURS〜DEPENDING ONに指定されたデータ名に設定した値
注※4
相対位置に「O」の表示があるデータ名の長さ
- 例:「データ名:DATA33」の場合
-
可変反復データ項目に続くデータ名の相対位置=(0x00000010)+5×(0x0000000f)+(0x0000000a)
=(0x00000065)
=101バイト
上記の図に対応したデータ領域ダンプリストの内容を次に示します。
データ領域ダンプリストの<WORKING-STORAGE SECTION>の先頭から(0x00000065)(101バイト)目の内容を10バイト参照することで,「データ名:DATA33」の内容を確認できます。
相対位置が可変となるデータ名がOCCURS句を含んでいる場合の相対位置の表示を次に示します。
|
-
O,V
相対位置が可変となるデータ名がOCCURS句を含んでいる場合は,「O」と「V」を表示します。
-
制御変数
DEP1に5を設定しているので,繰り返し回数は5回で計算します。
要素の相対位置については,次の計算式で求めてください。
- 計算式
-
相対位置が可変となるデータ名※1の相対位置=DEPENDING ON指定があるOCCURS句を含むデータ名※2の相対位置の値+プログラムが異常終了した時点の表の繰り返し回数の値※3×表の1要素の長さ※4+参照するデータ名の相対位置の値+(参照する表要素のその次元での出現番号−1)×表の1要素の長さ※5
注※1
相対位置に「O」と「V」の表示があるデータ名
注※2
相対位置に「O」の表示があるDEPENDING ON指定があるOCCURS句を含むデータ名
注※3
OCCURS〜DEPENDING ONに指定されたデータ名に設定した値
注※4
相対位置に「O」の表示があるDEPENDING ON指定があるOCCURS句を含むデータ名の長さ
注※5
相対位置に「O」と「V」の表示があるOCCURS句を含むデータ名の長さ
- 例:「データ名:DATA332」の場合
-
相対位置が可変となるデータ名の相対位置=(0x00000010)+5×(0x0000000f)+(0x0000000f)+(3−1)×(0x0000000a)
=(0x0000007e)
=126バイト
上記の図に対応したデータ領域ダンプリストの内容を次に示します。
データ領域ダンプリストの<WORKING-STORAGE SECTION>の先頭から(0x0000007e)(126バイト)目の内容を5バイト参照することで,「データ名:DATA332」の内容を確認できます。
■ 内部ブール項目
内部ブール項目については,相対位置としてビット位置も表示します。そのため,()内に16進数でバイト位置を,[]内にビット位置を10進数でそれぞれ表示します。また,長さはビット数を16進数で表示します。
内部ブール項目の相対位置の表示を次に示します。
|
-
0〜7
[]内にビット位置を10進数で表示します。
-
長さ
ビット数を16進数で表示します。
上記の図に対応したデータ領域ダンプリストの内容を次に示します。
データ領域ダンプリストの<WORKING-STORAGE SECTION>の先頭から(0x00000010)(16バイト)目の内容を1バイト参照することで,「データ名:DATA3」または「データ名:DATA31」のビット値を確認できます。
■ EXTERNAL句を含むレコード記述項
EXTERNAL句を含むレコード記述項は,レコードの先頭の相対位置を0として表示します。
EXTERNAL句を含むレコード記述項の相対位置の表示を次に示します。
|
-
相対位置
レコード先頭の相対位置を0として表示します。
上記の図に対応したデータ領域ダンプリストの内容を次に示します。
EXTERNAL句を含むレコード記述項は,レコードの先頭から内容を参照できます。
■ クラス定義のファイル節/作業場所節
クラス定義のファクトリ/オブジェクト定義中のファイル節/作業場所節の各データ項目の相対位置は,各節の先頭からの値ではなく,データ部先頭からの値になります。
クラス定義のファイル節/作業場所節の相対位置の表示を次に示します。
|
-
相対位置
データ部先頭からの値になります。
上記の図に対応したデータ領域ダンプリストの内容を次に示します。
クラス定義の場合は,コンパイルリストでデータ部の先頭からの相対位置を表示しているため,データ領域ダンプリストも領域の先頭からの相対位置で参照できます。
■ TYPE句/SAME AS句を含むデータ名の従属項目
TYPE句またはSAME AS句を含むデータ名の従属項目は,コンパイルリストに表示されません。そのため,従属項目の相対位置を参照したい場合は,ユーザ自身でTYPE句またはSAME AS句を含むデータ名の従属項目の相対位置を求めてください。
TYPE句/SAME AS句の定義がある原始プログラムリストを次に示します。
|
-
従属項目
TYPEDEF句を含むデータ名の従属項目を示します。
-
TYPE句を含むデータ名の従属項目
暗黙的にTYPEDEF句を含むデータ名の従属項目が展開されます。ただし,SAME AS句もTYPE句と同様にコンパイルリストには表示されません。
TYPE句を含む「データ名:BDAT2」の従属項目は,TYPEDEF句を含むデータ名の従属項目である三つのデータ名("ADAT1"/"ADAT2"/"ADAT3")になります。TYPEDEF句で定義したときの相対位置は,TYPEDEF句を含むデータ名の相対位置を0として表示します。そのため,TYPE句を含むデータ名の従属項目となるデータ名の相対位置は,次の計算式で求めてください。
- 計算式
-
参照するTYPE句を含むデータ名の従属項目であるデータ名の相対位置=TYPE句を含むデータ名の相対位置+参照するTYPEDEF句を含むデータ名の従属項目の相対位置
- 例:「データ名:ADAT3」の場合
-
「データ名:ADAT3」の相対位置=(0x0000005)+(0x0000000a)
=(0x0000000f)
=15バイト
上記の図に対応したデータ領域ダンプリストの内容を次に示します。
データ領域ダンプリストの<WORKING-STORAGE SECTION>の先頭から(0x0000000f)(15バイト)目の内容を5バイト参照することで,「データ名:ADAT3」の内容を確認できます。