COBOL 開発システムは、各プログラムのソース・コードを別々のウィンドウに表示するデバッグ環境を提供します。コードのデバッグはステップ実行が可能で、各文の実行に合わせてソースの各行が次々にハイライトされ、各文の効果が示されます。実行を中断してデータ項目を検討したり、変更したりできますが、これにはさまざまな方法があります。
プログラムをデバッグするには、ビルド・プロセスを構成して、デバッグに必要なすべてのファイルを作成する必要があります。これは、[Compile for debugging] オプションを選択した状態で、ビルド構成を使用して実行します。現在のビルド構成を確認して、新しいビルド構成を作成するには、IDE の [COBOL Explorer] ビューでプロジェクトを右クリックし、[プロパティ > Micro Focus COBOL > ビルド構成] を選択します。
[Debug] パースペクティブにおけるビュー
デバッグを開始すると、デバッグに役立つビューを備えた [Debug] パースペクティブが表示されます。デフォルトのビューを次に示します。これらのビューは、[Window > Show View] をクリックすると表示できます。
- [Debug] ビュー
- このビューには、すべてのスレッドが動的に表示されます。このビューには各スレッドの呼び出し/実行のスタックが表示され、現在の文の呼び出し元または実行元、また、以前の文の呼び出し元や実行元が示されます。スレッドを右クリックし、メニューからオプションを選択すると、実行ポイントを移動することができます。
- [Variables] ビュー
- 現在の文によって変更される変数 (変更前と変更後の値を含む) が表示されます。また、最後に実行された文で変更された変数がハイライトされます。このビューは[Preferences] で構成することができます。例えば、値を 16 進数で表示するように設定できます。
- 手続き型 COBOL の場合:前の文と現在の文でのデータ項目と、そのデータ項目の値を一緒に表示します。
OO COBOL の場合:すべてのローカル・データ項目およびパラメータと SELF 項目 (すべてのフィールドを含む) を表示します。
このビューでは、変数の値を変更できます。リストから変数を選択し、右クリックして [Change Value] を選択します。ダイアログ・ボックスが表示されます。
- [Breakpoints] ビュー
- 設定したブレーク・ポイントと監視ポイントが表示されます。ブレーク・ポイントのプロパティに動作を設定して、ブレーク・ポイントに到達したときに実行される動作を設定できます。データ項目が変更されると実行が中断されるように、監視ポイントを追加することができます。ブレーク・ポイントまたは監視ポイントを設定するには、コード・ビューの余白をダブルクリックします。
- [Expressions] ビュー
- デバッグ中に現在の実行文によって直接アクセスされるかどうかに関係なく、監視するように選択したデータ項目の値が表示されます。
デバッグ・セッション中、このビューにデータ項目を追加するには、コード・ビューでデータ項目を選択し、右クリックして [Inspect COBOL] を選択してから [Add to Expressions] を選択します。
また、[Expressions] ビューで [Add new expression] または
を選択して、任意の式をビューに追加することもできます。追加される式は任意の文字列にすることができますが、評価されるためには有効な式である必要があります。
制限事項:現在、Micro Focus では、データ項目の評価のみサポートしており、複雑な式の評価はサポートしていません。
[COBOL Copy View] でデバッグすることも可能です。[COBOL Copy View] では、コピーブックがインラインで展開されるため、単一のビューでコードとコピーブックのデバッグを実行できます。
Eclipse のデバッグ機能
Eclipse IDE は、数多くのデバッグ機能を提供しています。
- ブレーク・ポイント設定
- [Run > Toggle Breakpoint] または左余白でダブルクリックします。
-
ヒント: プログラム・ブレーク・ポイントを設定するか切り替えるには、手続き部見出しの隣にある左余白をダブルクリックします。プログラム・ブレーク・ポイントは、ネイティブ COBOL でのみサポートされ、ネストされたプログラムではサポートされません。
- データ項目の値
- データ項目の値を表示するには、データ項目の上にカーソルを置くか、データ項目を右クリックして [Inspect COBOL] をクリックします。
- デバッグ構成
- [Run > Debug Configurations]。複数のデバッグ構成を設定し、そのデバッグ構成を入れ替えることができます。これらの設定は、プロジェクトのランタイム設定をオーバーライドします。
- デバッグするメイン・プログラム
- [Run > Debug]。[General] タブで、メイン・プログラム・ファイルを指定します。
- [Reset execution]
- 実行ポイントをカーソル位置に移動します。ショートカット・キーは Alt+F12、R です。
- 環境設定
- [Window > Preferences > Micro Focus COBOL > Debug]。特に、データ項目の 16 進数値やバイト値を表示するように選択できます。
- [Run to line]
- コード内の任意の場所にカーソルを置いて、現在の実行ポイントからカーソルが置かれている行まで実行するようにデバッガに指示することができます。この機能により、コードの各行をステップ実行するステップ機能を使用する必要がない場合に、デバッグの時間を節約することができます。[Run to line] は、メイン・ソース・コードとコピーブック・コードの両方で使用できます。この機能を使用するには、コード内にカーソルを置いて [] をクリックするか、ショートカット CTRL+R を使用します。
- デバッグの停止
- [Run > Terminate]。上部にある赤い四角をクリックしても停止できます。
- 監視ポイント設定
- [Run > Toggle Watchpoint] または左余白でダブルクリックします。
制限事項:この機能は、VM COBOL ではサポートされていません。
- 検査
- COBOL 変数を検査することができます。エディタ内のカーソルをデータ項目の上に置くか、またはデータ項目を選択します。検査は、[Expressions] ビューのように機能します。エディタ (COBOL エディタまたは [Copy View]) で、任意のテキストを評価用に選択できます。
- ネイティブ (ローカルおよびリモート・プロジェクト) の場合:[Run > Inspect COBOL item]
- JVM COBOL プロジェクトの場合:[Run > Inspect]
エディタのコンテキスト・メニューまたは
CTRL+SHIFT+I ショートカットを使用して、検査をトリガすることもできます。
制限事項: データ項目の検査のみサポートされています。算術演算やメソッド呼び出しなどの複雑な式は、現在サポートされていません。
リモート UNIX マシン上で作成されたプロジェクト
COBOL アプリケーション・デバッグ構成を使用してリモート・デバッグを有効にするには、X Window 実装をインストールして実行している必要があります。これにより、UNIX マシン上で実行されているリモート・アプリケーションの出力をローカル・マシン上で確認できるようになります。他のデバッグ構成タイプの場合は、X Window は必要ありません。
Windows:Micro Focus ViewNow X は、Enterprise Developer インストールの一部として提供されています。
UNIX:ローカル X11 サーバがリモート・マシンから接続を受信できることを確認します。これを行うには、
xhost + コマンドを使用するか、SSH ポート転送を有効にします。別の方法としては、使用しているオペレーティング・システムに適した方法で、構成ファイルの値を設定して X11 の TCP/IP 接続を有効にします。次に例を示します。
- Red Hat:gdmsetup ユーティリティーを実行し、[Security] タブで [Deny TCP connections to Xserver] オプションの選択を解除する (これにより、/etc/gdm/custom.conf で DisallowTCP=false が設定される)
- SuSE:/etc/sysconfig/displaymanager で DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="yes" を設定する