COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

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

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

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

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

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

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

形式
CBL_FLSRVDUMP=出力先ファイル名
出力先ファイル名
デバッグ情報を出力するファイル名を絶対パスで指定します。

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

注意事項
環境変数CBL_FLSRVDUMPを実行支援で指定した場合,最初のCOBOLプログラムが動作するまで,この環境変数の指定は無効となります。

(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に続くダンプリストは,パラメタインタフェース領域を表しています。