Java ネイティブ・メソッドで呼び出されたプログラムのデバッグ
このトピックでは、Debug Tool で Java ネイティブ・メソッドとそれによって呼び出される、言語環境プログラムで実行されているプログラムをデバッグする方法について説明します。アプリケーションをデバッグするには、言語環境プログラム CWI サービス CEE3CBTS および呼び出し可能サービス CEETEST に対する呼び出しを Java ネイティブ・メソッドまたはプログラムに挿入し、メソッドまたはプログラムを TEST コンパイラー・オプションの HOOK サブオプションでコンパイルします。以下の手順では、CEE3CBTS および CEETEST に対する呼び出しをメソッドまたはプログラムに直接挿入する方法について説明します。
以下の手順は、次の項目の理解を前提としています。
- Java JNI インターフェースを理解している。
- Java ネイティブ・メソッドとそれによって呼び出されるプログラムをデバッグするようにリモート・デバッガー (Rational® Developer for System z® など) を構成したことがある。リモート・デバッガーの IP アドレスとポート ID を知っている必要があります。
- Java ネイティブ・メソッドとそれによって呼び出されるプログラムのコンパイル・パラメーターを変更できる。
次の手順を行います。
- 「言語環境プログラム Vendor Interfaces」に記載されている言語環境プログラム CWI サービス CEE3CBTS の説明を確認します。この状態では、構造体の要素に次の値を指定します。
- TCP/IP アドレス (「言語環境プログラム Vendor Interfaces」の説明を参照)
- デバッガーのポート ID (「言語環境プログラム Vendor Interfaces」の説明を参照)
- クライアント・プロセス ID (0 の値を割り当てます)
- クライアント・スレッド ID (0 の値を割り当てます)
- クライアント IP アドレス (0 の値を割り当てます)
- デバッグ・フロー (1 の値を割り当てます)
- デバッグするためにネイティブ・メソッドが呼び出すプログラムを選択します。デバッグを開始および停止する場所を決定します。
- Java ネイティブ・メソッドで、AttachDebug 機能コードを使用して CEE3CBTS に呼び出しを追加し、デバッグのコンテキスト・パラメーターに値を割り当てます。
- Java ネイティブ・メソッド内またはそれによって呼び出されるプログラム内に、CEETEST に呼び出しを追加します。CEETEST は、この状態の場合に Debug Tool を開始する方法です。
- Java ネイティブ・メソッドで、StopDebug 機能コードを使用して CEE3CBTS に呼び出しを追加して、デバッグ・セッションを停止します。
- TEST コンパイラー・オプションの HOOK サブオプションでコンパイルするように Java ネイティブ・メソッドのコンパイル・パラメーターを変更します。
- TEST コンパイラー・オプションの HOOK サブオプションでコンパイルするようにステップ 2 で選択したプログラムのコンパイル・パラメーターを変更します。
- プログラムの JCL を実行します。リモート・デバッグ・セッションが開始します。
Java ネイティブ・メソッドと Java ネイティブ・メソッドによって呼び出されたプログラムのデバッグを終了したら、上記の手順で行った変更を削除してから、アプリケーションを実稼働環境に移動します。
このトピックで説明している内容に関して詳しくは、以降のトピックを参照してください。