Oracle® Solaris Studio 12.4: dbx コマンドによるデバッグ

印刷ビューの終了

更新: 2015 年 1 月
 
 

dbx の Java コードデバッグモード

    Java アプリケーションのデバッグの場合、dbx は次の 3 つのモードのいずれかで動作します。

  • Java モード

  • JNI モード

  • ネイティブモード

dbx が Java モードまたは JNI (Java Native Interface) モードにある場合は、Java アプリケーション (JNI コードを含む) の状態を検査したり、コードの実行を制御したりすることができます。ネイティブモードでは、C または C++ JNI コードの状態を調べることができます。現在のモード (javajni、または native) は、環境変数 jdbx_mode に格納されます。

Java モードでは、Java 構文を使用して dbx と対話します。dbx も Java 構文を使用して情報を提供します。このモードは、純粋な Java コードか、Java コードと C JNI または C++ JNI コードが混在するアプリケーション内の Java コードのデバッグに使用します。

JNI モードでは、dbx はネイティブの構文を使用して、ネイティブコードにだけ作用しますが、コマンドの出力には、ネイティブのステータスばかりでなく、Java 関係のステータスも示されるため、JNI モードは「混在」モードです。このモードは、Java コードと C JNI または C++ JNI コードが混在するアプリケーションのネイティブ部分のデバッグに使用します。

ネイティブモードでは、dbx コマンドはネイティブプログラムにのみ影響を与えるため、Java に関連したすべての機能が無効になります。このモードは Java が関係しないプログラムのデバッグに使用します。

Java アプリケーションを実行すると、dbx は状況に応じて Java モードと JNI モードを自動的に切り替えます。たとえば、Java ブレークポイントを検出すると、dbx は Java モードに切り替わり、Java コードから JNI コードに入ると、JNI モードに切り替わります。