## デバッガーの機能強化

VisualAge COBOL Version 3.0.3 では、 COBOL が重大なエラーやクリティカル・エラーを検出して IBM 分散デバッガーが制御を得たとき、 オプションで、エラーを修正してプログラム実行を再開することができます。

この機能強化によって、次のようなケースでは、 デバッグ機能や結果に影響が及びません。

- VisualAge COBOL アプリケーションの開始前または終了後 (たとえば、 ランタイム開始時または終了時) に例外またはエラーが発生した場合
- VisualAge COBOL ランタイム以外で実行するとき

実行エラーは、次の 2 つの方法で VisualAge COBOL に報告されます。

- Windows オペレーティング・システムの例外
- VisualAge COBOL ランタイムからのソフトウェア通知

Windows オペレーティング・システムの例外は、 ハードウェアまたはオペレーティング・システムが検出したエラーとして使用されます。 このようなエラーは、 アプリケーションを VisualAge COBOL ランタイムで実行しているときにも、 または VisualAge COBOL ランタイム以外で実行しているときにも発生し得ます。 ソフトウェア通知は、 ランタイム中の妥当性検査または整合性検査でエラーが検出されたときに発生します。

VisualAge COBOL 以外で実行しているとき、 ハードウェア・エラーまたはシステム・エラーの後にプログラムの実行を再開するには、 次のステップに従ってください。

1. 例外をインターセプトするよう、デバッガーの例外フィルターを設定します。
2. エラーを含んでいるコードを実行します。
3. 必要に応じて、デバッガーを使用してエラーを訂正します。
4. デバッガー・オプション「例外を検査して再開」を使用して、実行を再開します。

VisualAge COBOL ランタイムで実行しているとき、 エラーの後でプログラム実行を再開するには、 ランタイム例外ハンドラーが制御を得る必要があります。 ソフトウェアが検出したエラーの場合、 デフォルトではランタイム例外ハンドラーが制御を得ます。 デバッガーの例外フィルターが例外をインターセプトするよう設定されているときにハードウェア・エラーまたはシステム・エラーが発生した場合には、 デバッガー・オプション「例外の実行」を使用して、 ランタイム例外ハンドラーを使用可能にしてください。

VisualAge COBOL ランタイム例外ハンドラーが制御を得たら、 デバッガーは例外に対応するランタイム・エラー・メッセージを表示します。 (デバッガーは、これらのメッセージをランタイム検出エラーとして報告します。) このメッセージ・ウィンドウを閉じると、デバッガーは、 エラーを発生させた VisualAge COBOL ランタイム呼び出しの次の命令で停止します。 アプリケーションが停止した正確な場所を判別するには、 デバッガーの混合ビューまたはアセンブリー・ビューを使用してください。

エラーにはさまざまなものがあります。 一部のエラーは、訂正せずに無視してアプリケーションを再始動することができます。 一方、アプリケーションを有効に再始動できない重大なエラーもあります。 単純なケースであれば、以下の処置を行うことによってエラーを訂正できます。

1. アプリケーション内のデータ変更を変更して、問題の原因を取り除く。
2. デバッガーの現在の命令を適切な COBOL ステートメントに設定する。 デバッガーは問題が検出された直後の場所で停止しましたから、 その前の場所でデバッガーを再始動する必要があります。
3. デバッガーを再始動する。

より複雑なケースの場合、次の処置を行うことができます。

1. アプリケーション内のデータ変更を変更して、 エラーを防止するのに必要な値を組み込む。
2. デバッガーの現在の命令を、 エラーの原因となったステートメントの後の適切な COBOL ステートメントに設定する。
3. アプリケーションを再始動する。

いずれのケースでも、 デバッガーがアプリケーションの制御を得た後、 デバッガーが停止した場所より前にある COBOL ステートメントが完了しなかった可能性もあることに注意してください。 さらに、エラー後にアプリケーションを再始動した場合、 エラーが発生しなかった場合とは動作が異なる可能性があることに注意してください。