COBOL2002 使用の手引 手引編


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

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

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

〈この項の構成〉

(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

×

×

×

CBLREAD

※2

×

CBLWRITE

×

CBLREWRITE

×

CBLUNLOCK

×

×

×

CBLDELETE

×

×

CBLSTART

×

×

CBLWDISK

×

×

×

(凡例)

○:デバッグ情報に出力される

×:デバッグ情報に出力されない

注※1

バッファ領域は,実際に入出力した長さでダンプ出力されます。

注※2

CBLREADサービスルーチンの実行前には出力されません。

(4) 出力形式

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

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

[図データ]

注※1

CBLCOMFLに続くダンプリストは,管理情報インタフェース領域を表しています。

注※2

CBLPARMFLに続くダンプリストは,パラメタインタフェース領域を表しています。