13.5.2 インタフェース領域のダンプ出力

COBOL入出力サービスルーチンが使用する次の三つのインタフェース領域の内容を,デバッグ情報としてダンプ形式で出力できます。

ここでは,これらのデバッグ情報の出力方法について説明します。

<この項の構成>
(1) 出力先ファイル名の指定
(2) 出力タイミングの指定
(3) 出力の対象となる領域
(4) 出力形式

(1) 出力先ファイル名の指定

デバッグ情報を出力するときは,環境変数CBL_FLSRVDUMPに出力先となるファイル名を指定します。次に,環境変数CBL_FLSRVDUMPの指定方法を示します。

形式

CBL_FLSRVDUMP=出力先ファイル名

出力先ファイル名
デバッグ情報を出力するファイル名を絶対パスで指定します。
規則
  • 環境変数CBL_FLSRVDUMPに指定したファイルがない場合,新規にファイルが作成されます。すでにファイルがある場合は,ファイルの最後にデバッグ情報が追加されます。
  • 環境変数CBL_FLSRVDUMPに指定したパスがない場合,実行時エラーとなります。
  • 環境変数CBL_FLSRVDUMPを指定しない場合,または値を指定しない場合は,デバッグ情報が出力されません。

(2) 出力タイミングの指定

デバッグ情報は,各入出力サービスルーチンの実行前,実行後,またはその両方のときに出力できます。管理情報インタフェース領域のデバッグ情報出力指示に値を指定すると,どのタイミングでデバッグ情報を出力するかを指定できます。次に,デバッグ情報出力指示に指定する値と,デバッグ情報が出力されるタイミングの関係を示します。

デバッグ情報出力指示の値デバッグ情報が出力されるタイミング
CBLCOM_DBG_NOデバッグ情報は出力されない
CBLCOM_DBG_BEF各入出力サービスルーチンの実行前
CBLCOM_DBG_AFT各入出力サービスルーチンの実行後
CBLCOM_DBG_BEFAFT各入出力サービスルーチン実行の前後両方
規則
  • デバッグ情報出力指示の値は,ファイルを開いている間でも任意に変更できます。これによって,入出力サービスルーチンごとに異なるタイミングでデバッグ情報を出力できます。
  • COBOL入出力サービスルーチンでパラメタエラーが発生した場合,サービスルーチン実行後にはデバッグ情報が出力されません。
  • デバッグ情報出力指示の値は,COBOL2002によって変更されません。

(3) 出力の対象となる領域

デバッグ情報へ出力されるインタフェース領域の種類は,実行するCOBOL入出力サービスルーチンの種類によって異なります。サービスルーチンごとに出力されるデバッグ情報の種類を,次に示します。

COBOL入出力
サービスルーチン
出力される領域
管理情報インタフェース領域パラメタインタフェース領域読み込み
バッファ1
書き出し
バッファ1
CBLOPEN××
CBLCLOSE×××
CBLREAD2×
CBLWRITE×
CBLREWRITE×
CBLUNLOCK×××
CBLDELETE××
CBLSTART××
CBLWDISK×××
(凡例)
○:デバッグ情報に出力される
×:デバッグ情報に出力されない
注※1
バッファ領域は,実際に入出力した長さでダンプ出力されます。
注※2
CBLREADサービスルーチンの実行前には出力されません。

(4) 出力形式

デバッグ情報には,それぞれの先頭の領域を0とした相対的な位置と内容が,ダンプ形式で出力されます。

デバッグ情報の出力例を,次に示します。

[図データ]

注※1
CBLCOMFLに続くダンプリストは,管理情報インタフェース領域を表しています。
注※2
CBLPARMFLに続くダンプリストは,パラメタインタフェース領域を表しています。