Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報
[掲示板に戻る全部  1-  最新50
1 COBOLのアドレス?
ぱぷあ 2011-3-24 9:26  [返信] [編集]

いつも参考にさせて頂いております。
早速質問させてください。

COBOL85で作成したプログラムで「不正十進エラー」がでました。
このエラーメッセージには「ADRS=」が表示されますが
このアドレスが、ソースレベルでどこを指すのか?
がわかるようなリスト等はありましたでしょうか?
(例えば、リンク時にリスト出力オプションとか・・・)

そういうのがあったような気がしたのですが
何せ遠い昔の記憶なので・・・

もしこういうのがなければ、デバッガを使うしかないのでしょうか?

つたない文章+内容で申し訳ないのですが
よろしくお願いいたします。
2 Re: COBOLのアドレス?
温泉好きのうさぎ 2011-3-24 12:20  [返信] [編集]

デバッグ情報が付加されたロードモジュールであれば、エラーの発生したソースの行位置がわかります。

(1)デバッグ情報付LMの作成
CBL85でコンパイルする際にオプションパラメータを指定し(OPT=YES)、デバッグ情報出力パラメータを指定します(DIO=YES)。

(2)プログラムの実行
上記のLMを実行して、不正十進数を発生させます。

(3)アボートダンプの出力
ENTER ABORT DUMP PARAMETER で ODE=MSD000、OFI=SYS@DUMP などと指定します。
ダンプファイルが存在しなければ、別途 #ABC にてアロケートします。

(4)メモリダンプ解析
#ABANA を起動し、各パラメータに適切な値を指定します。
出力装置をSTNとした場合、以下のように表示されます。
*** LINE ANALYZE ***
ERR STATUS:    E M0021: (PRG=PPPPPP,ADR=AAAA) 不正10進数エラー
CU NAME:       XXXXXX
SECTION NO.:     0
GENERATE LINE NO.:    789
RELATIVE LINE NO.:    456

(5)上記の場合、ソースの456行目ということがわかります。789行目は、コピー文を含めた行位置です。
3 Re: COBOLのアドレス?
ぱぷあ 2011-3-24 13:53  [返信] [編集]

素早いお返事ありがとうございます!!

やっぱり、それしかないですよね・・・

こちらのHP内にある「APのアボートダンプ」の項は拝見したのですが、
もっと簡単な方法があったような気がしていたのです。
(ソースリストの横にアドレスがでる、的な)
多分、ほかのエラー(LIN=XXXXで出てくるもの)と勘違いしていたんでしょうね。

こちらの環境では再現できないので
調査・準備してから現地へ行こうと考えていたのですが
さっそく明日朝イチに出向くことにします!

A-VXの担当は私だけでして、もう何年も前からメンテだけで
ファイルの容量オーバぐらいしかトラブルがありません。
なので、「いまさら不正十進?」と大焦り。
聞く相手もいないし、いつもひとりぼっちなので
こんなに早く回答がいただけて、ホントに涙出そうでした(笑

アドバイスありがとうございました!
4 Re: COBOLのアドレス?
rupa 2011-3-24 14:41  [返信] [編集]

不正十進数から考えられるとすると
・spaceが入っている。
・comp-3の桁溢れ(sort sumによるもの)
などが考えられます。
5 Re: COBOLのアドレス?
ぱぷあ 2011-3-24 15:39  [返信] [編集]

またまたありがとうございます!!

SPACEはチェックしましたが
桁あふれでも「不正十進」なのですか!
知りませんでした・・・何十年もやっているのに。
お恥ずかしい限り。
勉強になります!!


このシステム、そこそこの期間(10年近く)はメンテなしで安定稼働しており、
逆に言うと「ほとんど放置」に近いのです。
割とゆるーいシステムなので
想定外データが出現したのではないかと思い確認したのですが
「特殊なデータは入れてない」とのこと。
ちなみに、桁あふれするようなデータも「特殊データ」です。

何にせよ、ものすごくくだらなーいミスだと思うので
明日チェックしてみます!
(今さらバグじゃないことを祈りつつ・・・)


ホントに、ここの皆さんはお優しくて・・・
マジ泣きしそうです・・・

アドバイスありがとうございました!!

6 ありがとうございました!
ぱぷあ 2011-3-25 10:21  [返信] [編集]

おせわになります。
本日現地で調査を行いました。

コケていたのがメインプログラムからCALLしているサブプロだったので
調べるのに少し時間がかかりましたが、無事エラー解消できました!

やっぱり、「想定外データ」の「space」でした。

なぜそんなデータが?というのは、
「想定外データ」を吐き出したプログラムの
単純なリコンパイル忘れデス。お恥ずかしい限り。
(1995年から放置、存在すら忘れてたプログラムが・・・)

ともかく、原因が判明したので助かりました!

温泉好きのうさぎ様、 rupa様、
本当にありがとうございました!
7 Re: ありがとうございました!
rupa 2011-3-25 12:40  [返信] [編集]

解決してなによりでした。
[掲示板に戻る全部 次100 最新50
BluesBB ©Sting_Band