〜デバッグのヒント〜
プログラムを打ち終わった後、構文チェック(もしくはビルド)を行います。文法エラーがあると『メッセージウィンドウ』にエラーした箇所が表示されます。
(例) === reidai1 のビルド処理を開始します。=== a:\reidai1\reidai1\reidai1.cbl "a:\reidai1\reidai1\reidai1.CBL", line 8: KCCB1241C-S
FILE-CONTROL段落の書き方に誤りがあります。 …@ "a:\reidai1\reidai1\reidai1.CBL", line 35: KCCB3015C-S
"ICHIRAN-FILE"は未定義です。 …A "a:\reidai1\reidai1\reidai1.CBL", line 42: KCCB3015C-S
"N-KENCODE"は未定義です。 …B "a:\reidai1\reidai1\reidai1.CBL", line 45: KCCB3015C-S
"M-JINKOU"は未定義です。 …C "a:\reidai1\reidai1\reidai1.CBL", line 50: KCCB4248C-W このファイルに対するOPEN文がありません。CLOSE文を実行しても成功しません。 …D === reidai1 のビルド処理でエラーが発生しました。=== |
エラーメッセージの3行目から、『line:8』『line:35』…と行数が出ています。ここに文法エラーがあることが多いので、プログラムの該当する行を確認してみましょう。このヒントでは、特にミスの多い箇所を例に挙げて説明します。
(プログラム) ※01、02、・・・はプログラムの行数を表します。
01
identification division.
02
program-id.
rei0201.
03 *
04
environment
division.
05
input-output
section.
06
file-control.
07
select ken-file assign "h:\rei0201.dat".
08
organization line sequential.
09
select itiran-file assign "h:\rei0201.txt".
10 *
11
data division.
12
file section.
13 fd ken-file.
14
01 ken-rec.
15 05 kencode picture 9(02).
16 05 kenmei picture X(08).
17 05 menseki picture 9(05).
18 05 jinko picture 9(05).
19
fd itiran-file.
20
01 itiran-rec picture X(132).
21
working-storage section.
22
01 e-flg
picture X(03).
23
01 meisai-gyo.
24 05 filler picture X(09) value space.
25 05 m-kencode picture 9(02).
26 05 filler picture X(05) value space.
28 05 filler picture X(05) value space.
29 05 m-menseki picture 9(05).
30 05 filler picture X(05) value space.
31 05 m-jinko picture 9(05).
32 *
33
procedure division.
34 syori.
35 open input ken-file output ichiran-file
36 move "off" to
e-flg
37
perform until e-flg = "on"
38
read ken-file
39
at end
40
move "on" to e-flg
41
not at end
43
move kenmei to m-kenmei
44
move menseki to m-menseki
45
move jinko
to m-jinkou
46 move meisai-gyo to itiran-rec
47
write ichiran-rec after 1
48
end-read
50 close ken-file itiran-file
51
stop run.
(エラーメッセージについて)
@「段落の書き方に誤りがあります」の場合
ピリオドを必要なところに打っていなかったり、打つ必要のないところに
あると表示されます。エラーのある行数の前後を確認してください。
A「未定義」の場合
手続き部で使われている項目が、データ部の項目と一致しない時に表示されます。
だいたいの場合は打ち間違いが多いので、手続き部とデータ部の項目名の確認を
しましょう。
<例>
・ti と chi ・0(ゼロ) と O(オー)
・si と shi ・2(ニ) と Z(ゼット)
・tu と tsu ・i(アイ) と l(エル)
・hu と fu
・ji と zi など。
もし、自分で作ったプログラムにエラーが出てしまったら、まず、エラーメッセージの行数を参考にしてエラーを探してみましょう!