COBOL | DEBUG編 |
このページはCOBOLを知っている人あるいは、RPGプログラマーを対象として、
AS/400でのCOBOLを紹介しようとするものです。
COBOLを初歩から解説するものではありません。
ここで紹介するCOBOLはILE−COBOLです。
COBOLのデバッグ
COBOLのデバッグはILEデバッグ機能を使用してデバッグができます。この機能では、
ステップ実行、停止点を決めてのトラップ実行、監視変数を決めて、変数監視などが行えます。
デバッグの手順は次のようにします。
- 1.コンパイルでデバッグビューパラメータに*LIST(または*SOURCE)を指定
- CRTBNDCBL PGM(QTEMP/RM420) SRCFILE(QTEMP/QCBLSRC) +
DBGVIEW(*LIST)
ソースを見ながらステップ実行などのデバッグ操作ができるよう、DBGVIEW
パラメータに、*LIST(または*SOURCE)をつけてコンパイルします。
- 2.デバッグセッションの開始
- STRDBG PGM(QTEMP/RM420) UPDPROD(*YES)
STRDBGコマンドでデバッグセッションを開始します。
ソースリストが表示されます。
モジュール・ソースの表示 PROGRAM: LM420B LIBRARY: QTEMP MODULE: LM420B 1 STMT PL SEQ NO -A 1 B..+....2....+....3....+....4....+....5....+.... 2 000100 PROCESS APOST 3 1 000200 IDENTIFICATION DIVISION. 4 2 000300 PROGRAM-ID. LM420B. 5 000400*PROCESS GRAPHIC CVTPICGGRAPHIC APOST 6 000500* NAME : 担当者別得意先一覧 7 3 000600 AUTHOR. KAJIROU. 8 4 000700 ENVIRONMENT DIVISION. 9 5 000800 CONFIGURATION SECTION. 10 6 000900 SOURCE-COMPUTER. HAL-5000. 11 7 001000 OBJECT-COMPUTER. HAL-5000. 12 8 001100 INPUT-OUTPUT SECTION. 13 9 001200 FILE-CONTROL. 14 001300* 印刷ファイル ↓外部記述のと 15 10 001400 SELECT FILE1 ASSIGN FORMATFILE-LM420P 続く ... デバッグ _________________________________ F3= 終了 プログラム F6= 停止点の追加/消去 F10=ステップ F11= 変数の表示 F12= 再開 F17= ウォッチ変数 F18= ウォッチの処理 F24=キー の続き
- 3.停止点などのセット
- デバッグ停止点や、監視変数を設定します。
F6 停止点の追加/消去。
F17 監視変数。該当変数に値が入れられたとき、停止します。
- 4.実行
- F3または,F10,F12,F21キーを押す。
ついで、CLのCALL命令で実行
CALL RM420
注:停止点のセットなどをしない場合はF10(ステップ実行)を押す。
- 5.デバッグを行ないます。
- ステップ実行はF10キー、nnnnステップの連続実行は,STEP nnnnです。
変数を見る場合は、カーソルをあててF11キーを押すか、または、
EVAL 変数名
のコマンドを入力します。
EVAL 変数名 = 値
とすると、変数名に値のセットが行われます。
- 6.プログラムの終了
- F3で終了。(プログラムの打ち切りです。)
注意:F3で終了すると、プログラムでファイルがOPENされている場合は、
OPENのまま終了します。
次のOPENでエラー(COBOLではファイル状況41、二重OPEN)に
なります。
OPENされている状態を強制的に解消するには、RCLACTGRPコマンドで
解消できます。
RCLACTGRP ACTGRP(*ELIGIBLE) 1 活動化グループが削除された。
おまけ
実行時のエラーコードとその意味です。
コード 意味 22 キーが重複する。 23 該当レコードなし。 35 ファイルが存在していない。 41 二重OPEN。 46 前のSTARTまたは、READが正常に終わっていないのに次のREAD。 95 重複キーありのファイルなのにSELECTにWITH DUPLICATESがない。 9N 画面とのやりとりで、ハードウエア入出力エラー
(入出力ストリームが正常でない)
前ページ | 目次 |
(C)COPYRIGHT ISHIOKA KATSUHIDE 2008−2011