ダンプ・リスト解析入門(番外編):正しいアドレスなのにS0C4でABENDしている??

MVCL命令でデータの移動先アドレスや移動するデータの長さを間違えた場合、データの移動中にプログラム割り込みを起こしS0C4でABENDすることがあります。命令で指定したレジスターは、ABENDした時点の移動元や移動先の …

ダンプ・リスト解析入門 ⑨:ダンプ解析に関連するOSコントロール・ブロック⑤

タスクで実行中のプログラムがGETMAINマクロなどで獲得した仮想記憶域は、サブプール毎に獲得済みの領域とフリー領域が管理されています。これを行うためのコントロール・ブロックがSPQE、DQEおよびFQEです。 [cra …

ダンプ・リスト解析入門 ⑧:ダンプ解析に関連するOSコントロール・ブロック④

TIOT TIOT(Task Input/Output Table)は、ジョブを実行するためのJCLに定義されたDDステートメントのテーブルです。ジョブ名やステップ名などが格納されるヘッダー部と個々のDDステートメントの …

ダンプ・リスト解析入門 ⑦:ダンプ解析に関連するOSコントロール・ブロック③

LLE LLE(Load List Element)は、タスクがローディングしたロードモジュールを示すコントロール・ブロックです。タスクが最後にロードしたモジュールのLLEがTCBLLSフィールドからポイントされます。L …

ダンプ・リスト解析入門 ⑥:ダンプ解析に関連するOSコントロール・ブロック②

ASCB ASCB(Address Space Control Block)は、アドレス空間を管理するコントロール・ブロックです。RBや後述のTCBなど空間内のローカル・リソースを管理するコントロール・ブロックと違ってシ …

ダンプ・リスト解析入門 ⑤:ダンプ解析に関連するOSコントロール・ブロック①

ダンプリストには、レジスター内容と関連する仮想記憶域の内容だけでなく、OSのさまざまなコントロール・ブロックが編集されて出力されます。これらもプログラムABEND時の原因究明のための有用な調査用資料になります。数多くのサ …

ダンプ・リスト解析入門 ④:ABENDの原因を調べる②

レジスター・セーブエリア・トレース 異常終了時の徴候ダンプにはエラーを起こしたモジュール名が表示されます。JCL EXECステートメントのPGMパラメーターで指定されたモジュールやLOADあるいはLINKなど、スーパーバ …

ダンプ・リスト解析入門 ③:ABENDの原因を調べる①

モジュール内のどこでプログラムがABENDしたのかが特定できたら、エラーの原因を究明していきます。まずは、ABENDコードによってABENDさせられた直接の理由を確認します。その後、どうしてそのようなエラーを引き起こした …

ダンプ・リスト解析入門 ①:ダンプの種類と解析に必要な準備

アセンブラー・プログラミングをする上で避けて通れないのが、ダンプ・リストの解析です。z/OS(MVS)には、プログラムが実行中に異常終了するとその原因を判別するための診断資料として、プログラムに関連する仮想記憶域をダンプ …