アタッチデバッグは、サーバ側で実行したCOBOLアプリケーションからクライアント側のリモートデバッガを起動し、デバッグを開始する方法です。アタッチデバッグは、以下の順で行います。
クライアント側でリモートデバッガを起動します。(クライアント側で起動したリモートデバッガは、サーバ側でCOBOLアプリケーションが実行されるまで待機状態となります。)
クライアント側でリモートデバッガが起動されると、クライアント側のリモートデバッガコネクタが自動的に起動されます。
サーバ側でCOBOLアプリケーションを実行します。アプリケーションを実行する前に、アプリケーションの実行が開始されたことをクライアント側のリモートデバッガに通知するための環境変数を設定しておきます。
注意
複数のNetCOBOL Studioがアタッチデバッグの待機状態の場合、アタッチデバッグの動作結果は保証されません。
[依存]ビューまたは[構造]ビューからCOBOLプロジェクトを選択します。
メニューバーから[実行(R)] > [デバッグの構成(B)]を選択します。またはツールバーでの
をクリックし[デバッグの構成]を選択します。
→ [デバッグ構成]ダイアログボックスが表示されます。
左のペインで[リモートCOBOLアプリケーション]を選択します。
左のペイン上のをクリックすると、右のペインに起動構成の設定ページが表示されます。
初期値で[名前]に起動構成名が表示されます。起動構成名は任意の名前に変更することができます。
[メイン]タブをクリックし、各設定項目の確認と必要に応じて変更を行います。
項目 | 説明 |
---|---|
プロジェクト名 | 選択したプロジェクト名が表示されます。 |
デバッグ方法 | [アタッチデバッグ]を選択します。 |
デバッグ情報ディレクトリ | プロジェクトの[プロパティー]ダイアログボックスの[リモート開発]ページの[サーバディレクトリ]で指定したディレクトリと異なるディレクトリにデバッグ情報ファイルが格納されている場合、その格納ディレクトリを指定します。 複数のディレクトリを指定する場合には次のように指定します。
|
[デバッグ]を選択すると、デバッガが起動され、デバッグするアプリケーションの起動が通知されるまで待機状態となります。一度デバッグ起動した起動構成は、[実行] > [ヒストリのデバッグ]およびツールバーのショートカットに登録され、そこから再度起動することができます。
注意
サーバがSolarisまたはLinuxであり、かつ、デバッグ対象のCOBOLアプリケーションが使用するダイナミックリンクライブラリが実行ファイルと異なるディレクトリに格納されている場合は、ダイナミックリンクライブラリのデバッグ情報ファイル(.svd)を実行ファイルの格納ディレクトリにコピーしてからデバッグを開始してください。
ポイント
[依存]ビューまたは[構造]ビューでプロジェクトを選択し、メニューバーから[実行] > [デバッグ] > [リモートCOBOLアプリケーション]を選択することにより、デフォルトの設定でデバッガを起動することができます。
アタッチ形式のリモートデバッグでは、サーバ側のデバッガからの指示を監視するリモートデバッガコネクタは、リモートデバッガの起動時に、クライアント上で自動的に起動されます。クライアント側リモートデバッガコネクタが起動されると、タスクトレイにアイコンが表示されます。
注意
リモートデバッガコネクタはデバッガ終了時に自動終了しないため、リモートデバッグを終了した場合、リモートデバッガコネクタも終了させる必要があります。リモートデバッガコネクタを終了させるには、アイコンのコンテキストメニューから[終了]を選択してください。
[リモートデバッガコネクタ]ダイアログボックス
以下に、[リモートデバッガコネクタ]ダイアログボックスをページごとに説明します。
なお、代表的な指定方法については、“9.6.2.3 リモートデバッグを許可するコンピューターを制限する”を参照してください。
リモートデバッグを許可するコンピューターを制限する方法を“表9.28 接続制限の代表例”に示します。表ではIPv4アドレスを使用していますが、同様にIPv6アドレスを指定することもできます。[参照]“表9.30 リモートデバッグのIPv6対応”
なお、表では、サーバ側のリモートデバッガコネクタをサーバ側、クライアント側のリモートデバッガコネクタをクライアント側と表現しています。
また、サーバ側では、接続制限ファイルを使用します。[参照]“接続制限ファイルの形式”
クライアント側では、リモートデバッガコネクタの[接続制限]ページに設定を行います。[参照]“[リモートデバッガコネクタ]ダイアログボックス”
サーバ側では以下を行います。
サーバ側で実行したアプリケーションからクライアント側で起動したリモートデバッガにアプリケーションが実行を通知するための環境変数の設定
デバッグ対象のアプリケーションの実行
設定する環境変数は以下のとおりです。
サーバOS | 環境変数 |
---|---|
Windows(64) | @CBR_ATTACH_TOOL=接続先/STUDIO 追加パスリスト |
Solaris | CBR_ATTACH_TOOL=接続先/STUDIO 追加パスリスト |
Solaris(64) | |
Linux(Itanium) | |
Linux(64) |
“接続先”には、クライアントのIPアドレスまたはホスト名および必要に応じてポート番号を指定します。
クライアント側のリモートデバッガコネクタのポート番号と動作しているコンピューターを以下の形式で指定します。
{IPアドレス | ホスト名}[:ポート番号]
IPアドレスは、IPv4またはIPv6の形式で指定します。
ポート番号は、1024から65535の範囲の数字を指定します。ポート番号を省略した場合は、59999が指定されたと見なされます。
IPv6形式の場合は、スコープ付きアドレスを指定することができます。スコープ付きアドレスを指定する場合、アドレスの後にスコープ識別子を指定します。
なお、IPv6アドレスにポート番号を指定する場合は、アドレス部分を“[ ]”で囲んでください。
例:
IPv4アドレス(192.168.0.1)およびポート番号(2000)での指定
@CBR_ATTACH_TOOL=192.168.0.1:2000/STUDIO
IPv6アドレス(fe80::1:23:456:789a)およびポート番号(2000)での指定
@CBR_ATTACH_TOOL=[fe80::1:23:456:789a]:2000/STUDIO
IPv6アドレス(fe80::1:23:456:789a)およびスコープ識別子(%eth0)での指定
@CBR_ATTACH_TOOL=fe80::1:23:456:789a%eth0/STUDIO
IPv6アドレス(fe80::1:23:456:789a)、スコープ識別子(%5)およびポート番号(2000)での指定
@CBR_ATTACH_TOOL=[fe80::1:23:456:789a%5]:2000/STUDIO
ホスト名(client-1)およびポート番号(2000)での指定
@CBR_ATTACH_TOOL=client-1:2000/STUDIO
ポート番号省略の指定(IPv4アドレス)
@CBR_ATTACH_TOOL=192.168.0.1/STUDIO
ポート番号省略の指定(IPv6アドレス)
@CBR_ATTACH_TOOL=fe80::1:23:456:789a/STUDIO
注意
サーバのOSがLinux(Itanium)の場合、IPv6アドレスを指定することはできません。
リモートデバッグでは、以下の範囲でIPv6アドレスに対応しています。
項目 | 仕様 |
---|---|
対応可能なネットワーク | 以下の環境に対応しています。
|
使用可能なIPv6アドレス | 以下のIPv6 アドレスが使用できます。
また、IP アドレスのインタフェースID 部は任意をサポートしています。 |
IPv4/IPv6のアドレス選択 | IPv4/IPv6デュアルスタック環境においてはIPv6を優先的に使用します。 以下は、対応していません。
|
IP アドレスの表記 | 以下のIPv6アドレス表記をサポートしています。
IPv4/IPv6 デュアルスタックOS 時やIPv4/IPv6 併用時(デュアルスタック時)にIPv4 アドレスを指定する場合は、従来どおりのIPv4 アドレス表記を使用してください。 |
注意
一定時間ごとに変わる一時アドレス(プライバシ拡張)は、サポートしていません。IP アドレスが変更された場合は、リモートデバッガコネクタおよびリモートデバッガの再起動が必要です。
“追加パスリスト”には、起動するアプリケーションが動作し始めたときのカレントディレクトリと、起動するアプリケーションの格納ディレクトリは記述する必要はありません。以下の順序で、デバッグ情報のファイルが検索され、デバッグに利用されます。
追加パスリストの指定順(各パスは、Windowsの場合は“;”で区切って記述してください。Solaris、Linuxの場合は“:”で区切って記述してください)
アプリケーションが動作し始めたときのカレントディレクトリ
起動するアプリケーションの格納ディレクトリ
環境変数の設定方法に関する詳細は、“NetCOBOL ユーザーズガイド”を参照してください。
環境変数の設定後に、デバッグ対象のアプリケーションを実行すると、リモートデバッガとアプリケーションが接続され、デバッグが可能になります。
待機状態の解除
アタッチ形式でリモートデバッガを起動し、待機状態となったあとでデバッグを中断する場合は、ウィンドウ右下のをクリックし、表示された[進行状況]ビューで
をクリックしてください。
クライアント上のCOBOLアプリケーションのアタッチデバッグ
[デバッグ構成]ダイアログボックスの左ペインで[リモートCOBOLアプリケーション]を選択し、表示された起動構成の設定ページで以下の設定を行うことで、クライアント上のCOBOLアプリケーションをアタッチデバッグすることもできます。
クライアント上のアプリケーションをアタッチデバッグする場合には、クライアント上で環境変数CBR_ATTACH_TOOLを設定します。
以下にクライアント上のアプリケーションをアタッチデバッグする手順を示します。
デバッガにアプリケーションの起動を通知するため、以下の環境変数をクライアント上で設定します。
@CBR_ATTACH_TOOL=localhost/STUDIO
NetCOBOL Studioの[依存]ビューまたは[構造]ビューからCOBOLプロジェクトを選択します。
メニューバーから[実行(R)] > [デバッグの構成(B)]を選択します。またはツールバーでの
をクリックし[デバッグの構成(B)]を選択します。
→ [デバッグ構成]ダイアログボックスが表示されます。
左のペインで[リモートCOBOLアプリケーション]を選択します。
左のペイン上のをクリックすると、右のペインに起動構成の設定ページが表示されます。
初期値で[名前]に起動構成名が表示されます。起動構成名は任意の名前に変更することができます。
[メイン]タブをクリックし、各設定項目の確認と必要に応じて変更を行います。
項目 | 説明 |
---|---|
プロジェクト名 | 選択したプロジェクト名が表示されます。 |
デバッグ方法 | [アタッチデバッグ]を選択します。 |
デバッグ情報ディレクトリ | プロジェクトの[プロパティー]ダイアログボックスの[リソース]ページの[ロケーション]で表示されているディレクトリと異なるディレクトリにデバッグ情報ファイルが格納されている場合、その格納ディレクトリを指定します。 複数のディレクトリを指定する場合には、“;”(セミコロン)で区切って指定します。 |
[デバッグ(D)]ボタンをクリックすると、デバッガが起動し、デバッグするアプリケーション側から起動が通知されるまで待機状態となります。
デバッグするCOBOLアプリケーションを実行し、デバッグを開始します。