APのアボートダンプ
- ●APが途中で終了すると・・・
-
APが異常終了したときや、プログラム放棄、業務放棄した時に、以下のように画面上の方に「ENTER ABORT DUMP PARAMETER」といったメッセージが表示されます。この画面で、APのアボートダンプを取ることができます。
・業務放棄した時
・プログラムが異常終了した時
- ●APのアボートダンプとは
-
「アボートダンプ」とは何かというと、簡単に言えば、異常終了したときのプログラムの状態(主にメモリの情報)を記録してあるものです。後で異常終了の原因を調査したりするのに使用します。
主にCOBOLプログラムのデバッグ時に使用します。業務中に異常終了したりしたときにも、アボートダンプを取ることができますが、たいていの場合いろいろ理由があって、原因調査には役に立たないことが多いです。
あくまでもデバッグ中のみ使用できるものだと思ってください。
- ●APのアボートダンプを取ってみる
-
実際に異常終了するダメなCOBOLプログラムを実行して、APのアボートダンプを取り、原因の調査をしてみましょう。
アボートダンプを取るには、まずアボートダンプを格納するためのファイルが必要になります。さらにCOBOLプログラムを作る時に、一工夫しておく必要があります。
ここでは以下のような手順で説明します。
アボートダンプファイルを作成する。 ダメなCOBOLプログラムを実行して、異常終了させる。 異常終了時点のメモリダンプをアボートダンプファイルに取る。 「メモリダンプ解析ユーティリティ」を使用して、原因調査する。 自動でアボートダンプを採取する機能。
A−VXとして名称統一されていない言葉で、説明書によっては「メモリダンプ」と書いてあるところもある。
他にも業務放棄やプログラム放棄などの強制終了した時も、アボートダンプは取れます。でも強制的に終了した時にアボートダンプが取れてもあまり意味はないので。
解析ユーティリティを使用するには、ロードモジュールにデバッグ情報が付加されている必要がある。しかしこのデバッグ情報が付加されているロードモジュールは(いろいろな情報が付いているので)処理が遅いし、サイズも大きい。このために本番用のプログラムにはデバッグ情報を付けないのが普通です。
つまり業務には本番用プログラムを使っているので、そのプログラムがアボートした時のアボートダンプは解析ユーティリティで自動解析できない。
つまり業務には本番用プログラムを使っているので、そのプログラムがアボートした時のアボートダンプは解析ユーティリティで自動解析できない。