配列 - ローカル変数 初期化 java




ローカル宣言された変数は検査できません (3)

1.6.0_25のデバッグバイナリは、 http://download.java.net/jdk6/6u25/promoted/b03/index.html ://download.java.net/jdk6/6u25/promoted/b03/index.htmlにありhttp://download.java.net/jdk6/6u25/promoted/b03/index.html

これにより、1.6のJavaライブラリコードをデバッグできるようになります。

時にはEclipseでコードをデバッグしているときに、クラスメンバ変数を何も問題なく見て調べることができますが、関数内でローカルに宣言された変数の値を調べることができません。 さて、現在の関数のすべてのパラメータは、実際の名前を失い、代わりに変数ウィンドウにarg0、arg1、arg2などの値が表示されますが、少なくとも値は表示されます。

これは現在、コアJDK内で定義されたクラスに関連して発生しています。 私は、インストールされた現在のJREがJDKであることを確認しました。

誰もこの行動について何か光を当てることができますか?


どうやら、 answerは:

.classファイルに含まれる完全なデバッグ情報でコンパイルされないため、デバッガにはローカル変数情報がありません。

残念ながら、これはEclipseが何でもできることではありません。すべてのデバッガはJDKのコアクラスで同じ問題を抱えます。

Eclipse 3.4リリースノートには、

デバッグ属性がありません
デバッガでは、行番号とローカル変数を表示できるようにするには、デバッグ属性を使用してクラスファイルをコンパイルする必要があります。 ほとんどの場合、完全なデバッグ属性なしでクラスライブラリ(たとえば、 "rt.jar")がコンパイルされるため、これらのクラスのローカル変数とメソッド引数はデバッガでは表示されません。


私はリンク( http://www.javaadvent.com/2014/12/recompiling-java-runtime-library-with.html )を試して、antのスクリプトをダウンロードして修正しました。 変更:javacの<compilerarg line="-g" />を渡しました。 rt.jarが生成されました。 JREのrt.jarを置き換えました。 (バックアップを忘れないでください)。

今、私はeclipseでデバッグ中にrt.jar内のどのクラスのローカル変数も調べることができます。





debugging