コア ダンプを使用したデバッグ

重要:
  • 次の説明はネイティブ コードにのみ該当します。
  • Windows では、この製品によって作成されるコア ファイルは Microsoft のミニダンプ ファイルです。混合言語アプリケーションがある場合は、このミニダンプ ファイルを使用して他の言語もデバッグできます。

アプリケーションがクラッシュしたとき、またはプログラムで (CBL_CREATE_CORE ライブラリ ルーチンを使用して) コア ダンプを呼び出したときに、その状態をコア ファイルに保存して、さらにディスクに保存するように調整できます。このファイルの内容には、ソース コードのどこでエラーが発生したのかが示されます。エラー発生時または呼び出し時のメモリの内容、およびその時点で設定されているすべての変数と式の値も含まれます。これにより、このコア ファイルを使用して問題をデバッグできます。

コア ダンプ デバッグは、COBOL 開発システムがインストールされていない本番環境でアプリケーションの問題が発生した場合に便利です。別の場所でアプリケーションのソース ファイルにアクセスできる限り、コア ファイルを生成してデバッグできます。

コア ファイルを使用したデバッグを正確に行うためには、開発環境で、問題の実行可能ファイルの作成に使用した元のソース ファイルおよび .idy ファイルを使用する必要があります。それらを使用できない場合は、ソースが最初のビルドのときと同じ状態 (指令設定、最適化など) であることを確認する必要があります。また、このプロセスでは、本番環境のマシンから開発環境の別のマシンに移動することになる可能性が高いため、アプリケーションによって使用されるサポート ファイルが両方の環境で同じパスにインストールされている必要があります。

必要な .idy ファイルがない場合は、ソースを利用できないと通知されます。

コア ファイルの生成

コア ファイルは、次のいずれかの方法で生成できます。

  • コマンドプロンプトから cblcored.exe を使用します。
    1. cblcored.exe ファイルを、製品インストール ディレクトリの bin サブフォルダーから、アプリケーションのメインの実行可能ファイルと同じディレクトリにコピーします。
    2. コマンド ラインで、cblcored.exe を含むディレクトリに移動し、次のように入力します。
      cblcored
      注: cblcored.exe を実行するには、Windows レジストリの現在のユーザーの HKEY_CURRENT_USER キーに対する書き込み権限が必要です。コア ダンプの設定に対する変更を保存するために、ユーティリティに必要な権限があることを確認してください。
    3. [コア ダンプ] リストから、次のいずれか 1 つを選択します。
      • [使用可能 (プロンプト付き)]。コア ダンプの作成時にメッセージ ボックスを表示する場合はこれを選択します。
      • [使用可能 (プロンプトなし)]。コア ダンプの作成時にメッセージ ボックスを表示しない場合はこれを選択します。
      • [使用不能]。コア ダンプが不要な場合はこれを選択します。

      使用可能にするオプションのいずれかを選択すると、次にアプリケーションを実行してエラーが発生した場合、エラー発生時のアプリケーションの状態が cblcore ファイルに保存されます。このファイルは、アプリケーションと同じフォルダーに保存されます。

    4. アプリケーションを実行します。アプリケーションがクラッシュしたときに、[使用可能...] オプションのいずれかを選択した場合はコア ダンプが生成されます。
  • ランタイム チューナーを使用して、ランタイム エラーに対するコア ダンプを実行します。
    1. ランタイム チューナー構成ファイルを作成し、core_on_error チューナーを追加します。

      生成されるコア ファイルのデフォルトの名前は cblcore です。別のファイル名を指定するには、core_filename チューナーをランタイム チューナー構成ファイルに追加します。

    2. アプリケーションを実行します。アプリケーションがクラッシュすると、コア ダンプが生成されます。
  • プログラムで CBL_CREATE_CORE ライブラリ ルーチンを使用して、コア ダンプを呼び出します。詳細については「CBL_CREATE_CORE」を参照してください。

コア ファイルを使用したデバッグ

ネイティブ COBOL プロジェクトまたはネイティブ Mainframe Subsystem Support プロジェクトを使用してコア ファイルをデバッグするには、次の手順を実行します。

注: プロジェクトと、そのコンパイル対象のソースが、元の実行可能ファイルが作成されたときから変更されていないことを確認します。変更されていると、デバッグに使用する .idy ファイルと、最初 (実行可能ファイルがビルドされたとき) に作成されたファイルとの不一致により、デバッグ時に予期しない結果が生じます。
  1. IDE で、[プロジェクト > MyProject のプロパティ] をクリックし、[デバッグ] タブに移動します。
  2. [外部プログラムを起動する] をクリックし、Micro Focus コア ファイルの名前を指定します。
    プロジェクトがネイティブ COBOL メインフレーム プロジェクトの場合は、次の手順を実行します。
    • プロジェクトのプロパティの [デバッグ] タブで、[起動] を [コア ダンプ] に設定します。
    • 次に、Micro Focus コア ファイルをブラウズして選択します。
  3. デバッグを開始します。
注:
  • Just-In-Time デバッグとコア ダンプの両方を同時に有効にすることはできません。
  • 64 ビットのコア ダンプをデバッグするには、最初に 64 ビットのプロジェクト構成を作成するか、プロジェクトのプロパティの [COBOL] タブでプラットフォーム ターゲットとして x64 を選択する必要があります。
  • cblcored.exeEnterprise Server のファイルの 1 つで、オンサイト デバッグ用に用意されています。適切なライセンスがある場合は、このファイルを再配布できます。
  • IIS のもとで実行されているアプリケーションのコア ダンプを作成するには、コア ダンプ機能を有効にした際に使用したユーザー アカウントと同じアカウントでアプリケーションが実行されている必要があります。たとえば、デフォルトの匿名ログオン アカウントのもとで実行されている CGI または ISAPI アプリケーションでは、コア ダンプは生成されません。