COBOL のデバッグに関するヒント

ここでは、Visual Studio IDE での COBOL アプリケーションのデバッグに関するヒントやテクニックを示します。

ウォッチ式の追加
エディターで変数を右クリックし、[ウォッチ式の追加] を選択します。
実行プロセスへのアタッチ
To attach to a running process and debug」を参照してください。
64 ビット実行プロセスへのアタッチ
To attach to a 64-bit running process and debug」を参照してください。
[自動変数] ウィンドウ
現在の文および前の文で使用されている変数が表示され、値を変更したり、ウォッチ式を追加したりすることができます。このウィンドウを表示するには、[デバッグ > ウィンドウ > 自動変数] をクリックします。

コード内の COPY… REPLACING 文によって変更されるコピーブックの変数について、[自動変数] ウィンドウにはソース コードで定義されているすべての値が表示されます。コピーブックで COPY… REPLACING を実行する COBOL プログラムがプロジェクトに複数ある場合、[自動変数] ウィンドウでは、最初の COBOL プログラムで検出された値の置き換えのみが使用されます。

ブレークポイント設定
コード行の横にあるエディターの左マージンをダブルクリックするか、行の上にカーソルを移動して F9 を押します。また、エディターのコンテキスト メニューから [デバッグ > ブレークポイントの設定/解除] または [ブレークポイント > ブレークポイントの挿入] を選択することもできます。
注:トレースポイントは、マネージ コードをデバッグする場合にのみサポートされます。
[ブレークポイント] ウィンドウ
コードで設定されているすべてのブレークポイントおよびトレースポイントのリストが表示されます。ウィンドウ内のブレークポイントをダブルクリックして、ブレークポイントが追加されている行の上にカーソルを移動します。
データ変更のブレークポイント
COBOL 監視ポイントとともに使用します。監視ポイントが設定されているデータ項目の値が変更されると、デバッガーにより、プログラムの実行が中断され、そのデータ変更の後の行が強調表示されます。IDE で、[COBOL Watchpoints] ウィンドウが開き、変更されたデータ項目が強調表示されます。ネイティブ コードでのみ使用できます。
[CICS Channels] ウィンドウ
デバッグ時に CICS COBOL アプリケーションで使用されているすべてのチャネルおよびコンテナーのプロパティおよび内容が表示されます。
COBOL ソース情報の使用
COBOL ソース情報 (CSI) により、プログラムに対して作業を行っている際に、そのプログラムに関する情報を素早く簡単に得ることができます。CSI クエリ コントロールにクエリを入力すると、CSI は [Search] ビューにクエリの結果を返します。
COBOL 監視ポイント設定
注: COBOL 監視ポイントは、ネイティブ COBOL でのみサポートされます。
エディターから監視ポイントを追加するには、データ項目を右クリックし [Add COBOL Watchpoint] を選択します。また、[Watchpoints (Native COBOL)] ウィンドウから監視ポイントを追加することもできます。監視ポイントを無効化または削除するには、[デバッグ > COBOL Watchpoints > Disable/Delete All Watchpoints] を選択します。
データチップおよび [ソースにピン設定]
ソース コード内の変数に関する情報が提供されます。変数のデータチップを表示するには、目的の変数の上にカーソルを置きます。これは、実行停止時にブレーク モードでのみ、また実行時に使用される変数についてのみ機能します。

変数のデータチップを開いたままにする必要がある場合は、コード内で目的の変数を右クリックし、[ソースにピン設定] を選択します。

添え字 OCCURS 項目のデバッグ ツールチップ
配列の要素を表示するか、現在の式の値を表示するように、添え字 OCCURS 項目のデバッグ ツールチップを構成できます。これを行うには、エディター内を右クリックし、[COBOL Debug Tooltip Style] をクリックして、[OCCURS や部分参照の値を表示] を有効または無効にします。エディターでツールチップのスタイルを変更するには、デフォルトのキー順である ALT+T、T を使用します。
スタンドアロン COBOL ファイルのデバッグ
これはネイティブ COBOL にのみ適用されます。次のように、IDE でプロジェクトなしでスタンドアロン COBOL ファイルをデバッグできます。
  1. ファイルがコンパイルされていることを確認します。「個々のファイルのコンパイル」を参照してください。
  2. 必要に応じて、デバッグ オプションを確認して指定します。これは、次の 2 つの場所で行うことができます。
    • スタンドアロン ファイルの場合、ファイルのプロパティ ウィンドウ (F4 でアクセス) の [Debug] セクション
    • [Debugging Options] ダイアログ ボックス (デバッグを開始するとすぐに起動)

    コマンド ライン引数、開始プログラム、作業ディレクトリを指定できます。

  3. [Debug > Step into] をクリックします。

    IDE オプション ([Tools > Options > Micro Focus > Standalone Editing > General]) で構成されている場合は、[Debugging Options] ダイアログ ボックスが開きます。設定を指定して [OK] をクリックします。

    IDE がデバッグ モードに入ります。

  4. 通常の方法でコードを 1 ステップずつ実行します。

問題を修正するためにコードを変更する必要がある場合は、デバッグを再度開始する前に再コンパイルする必要があります。

すべてのソース ファイルを 1 つのプロジェクトに含めることをお勧めしています。こうすることで、IDE の編集やコンパイル、デバッグなどの機能が完全にサポートされるためです。プロジェクトの一部でないスタンドアロン ファイルについては IDE サポートが限定されるため、Enterprise Developer でこれらのファイル用のプロジェクトを作成し、これらのファイルでエディターやビルド、デバッグの機能をすべて使用できるようにします。スタンドアロン ファイルからプロジェクトを作成するには、エディター内を右クリックし、[Create COBOL Project] をクリックします。

すべての参照の検索
エディターで、コード内の COBOL データ項目、節、または段落名を右クリックして [すべての参照の検索] を選択すると、その項目への参照を含むソリューション内のすべての場所のリストが [シンボルの検索結果] ウィンドウに表示されます。リストの項目をダブルクリックすると、その要素が含まれているコード行にカーソルが移動します。
[シンボルの検索結果] ウィンドウ
このウィンドウを表示するには、[表示 > 検索結果 > シンボルの検索結果] をクリックします。エディターの [すべての参照の検索] コマンドの結果が表示されます。リストの項目をダブルクリックすると、その項目が含まれている行にカーソルが移動します。
場所へ移動
COBOL ツールバー (表示されていない場合は、[ツール > カスタマイズ > ツール バー] をクリックし、[COBOL] をクリックする) のテキスト フィールドを使用すると、変数や式の定義を見つけることができます。フィールドに変数名または式を入力し、[編集 > 場所へ移動] をクリックするか、COBOL ツールバーの Go To Location ([Enter a COBOL Term and Go To Definition]) をクリックします。エディター内で変数をポイントして F12 キーを押しても、同じ操作を実行できます。

コード内で前の場所に戻るには、Navigate Backwards ([Navigate Backwards]) をクリックします。

Just-In-Time デバッグ

アプリケーションでエラーが発生した場合に Just-In-Time デバッグを使用できるようにします。ネイティブ COBOL コードに対して Just-In-Time デバッグを有効にするには、[ツール > オプション > デバッグ > Just-In-Time デバッグ] をクリックします。[Micro Focus Native Debugger] をオンにします。ネイティブ コードでのみ使用できます。

[メモリ] ウィンドウ
指定したアドレスのメモリの内容を確認できます。ポインター参照、データ項目のアドレス、または整数値を指定できます。このウィンドウを表示するには、[デバッグ > ウィンドウ > メモリ > メモリ n] をクリックします。ネイティブ COBOL でのみ使用できます。
プログラム ブレークポイント
注: プログラム ブレークポイントは、ネイティブ COBOL でのみサポートされ、入れ子になったプログラムではサポートされません。
プログラムまたはそのエントリ ポイントのいずれかが呼び出された場合にプログラムを中断できます。
エディターでコードを右クリックし、[Add COBOL Program Breakpoint] をクリックします。
クイック ブラウズ
[クイック ブラウズ] ダイアログ ボックス (COBOL ツール バーの をクリックすると開きます) は、COBOL ソース情報 (CSI) 機能の一部で、CSI クエリを実行して出力ウィンドウの [COBOL Source Information] タブにクエリの結果を表示できます。
リモート デバッグ
TCP/IP を使用してマシンが接続されている場合にリモート システム上で実行されているプロセスをデバッグできます。「リモート デバッグ」を参照してください。
ローカル システムおよびリモート システムが TCP/IP を使用してネットワーク接続されていることを確認します。リモート マシンに接続し、プログラムをデバッグするには、[プロジェクト > プロジェクトのプロパティ] を選択し、[デバッグ] タブに移動します。[Enable remote machine] をオンにし、リモート マシンの名前または IP アドレスおよび TCP ポート番号を入力します。
カーソル行の前まで実行
エディターでコード行を右クリックし、[カーソル行の前まで実行] を選択します。これにより、デバッグ セッションが開始され、カーソルを置いた行までコードが実行されます。
デバッグの開始
[デバッグ > デバッグの開始] を選択するか、F5 または F11 を押します。F5 を押すと、デバッグが開始され、ブレークポイントまで、またはエラーが発生するまで、アプリケーションが実行されます。F11 を押すと、デバッグが開始され、デバッグできる最初の文で中断されます。
デバッグの停止
[デバッグ > デバッグの停止] を選択します。また、[デバッグ] ツール バーの をクリックすることもできます。
[スレッド] ウィンドウ
プロセスで実行されているすべてのスレッドが表示されます。このウィンドウを表示するには、[デバッグ > ウィンドウ > スレッド] を選択します。
トレースポイント設定
トレースポイントは、条件付きのブレークポイントです。デバッガーは、トレースポイントに到達すると、実行を停止する代わりに、または実行を停止する前にアクションを実行します。トレースポイントを設定するには、トレースポイントを指定する必要があるコード行をクリックして [デバッグ > トレースポイントの設定/解除] を選択するか、コンテキスト メニューから [ブレークポイント > トレースポイントの挿入] を選択し、実行するアクションを指定します。トレースポイントは、マネージ コードをデバッグする場合にのみサポートされます。
[変数] ウィンドウ
[自動変数]、[ローカル]、[クイック ウォッチ]、[ウォッチ] などのウィンドウがあり、値や式を監視および編集できます。
ウォッチ ウィンドウ
変数や式の値を監視できます。このウィンドウを開くには、デバッグ中に [デバッグ > ウィンドウ > ウォッチ > ウォッチ n] をクリックします。値の表示形式を 10 進から 16 進に変更するには、ウィンドウ内を右クリックし、[16 進数で表示] をクリックします。

ウォッチ ウィンドウで個別行の値の表示形式を変更するには、行をクリックし F2 を押して、「Variable,h」または「Variable,x」と入力すると、常に値は 16 進数形式で表示されます。「Variable,d」と入力すると、常に変数の値は 10 進形式で表示され、文字列の値はテキストとして表示されます。

[Watchpoints (Native COBOL)] ウィンドウ
データ項目を監視ポイントとして追加し、10 進表示または 16 進表示でその値を監視できます。このウィンドウを開くには、[デバッグ > ウィンドウ > COBOL Watchpoints] をクリックします。