web-dev-qa-db-ja.com

IntelliJでJDKソースコードをステップ実行するIDEA

IntelliJ IDEA 7でJDKソースコードをステップ実行してデバッグ情報を表示するにはどうすればよいですか?現在、ブレークポイントにヒットしてコードをステップ実行できますが、デバッグ情報は利用できません。これは、ローカル変数の値は表示されません。

必要に応じて、1つのクラスのソースコードだけをステップ実行します。
価値があるのは、javax.swing.text.html.HTMLDocumentクラスです。対応する.Javaファイルのコピーを持っています。

52
Paul Reiners

[ファイルメニュー->]設定->デバッガー->ステッピングを見ると、「これらのクラスにステップインしないでください」というリストが表示されます。おそらくそこに「Java。*」がリストされています。それは事実ですか?オフにできます。

どうやらデバッグ情報は利用できません。 this thread によると:

悲しいことに、JDKクラスには、パラメーターとローカル変数のデバッグ情報が取り除かれています。

数年前、私はIdeaがソースコードから必要な情報を推測するようにリクエストを提出しました(基本的に変数名をインデックスに変換してメソッドローカルvarに変換します)。
デバッガ:デバッグ情報がないときに変数情報を表示

投票/コメントしてください。

回避策として、JDKをソースから再コンパイルできますが、必要なすべてのソースコードが添付されていないクラスを除外する必要があります。

おもしろいことに、 ベータ版Java 6u18、デバッグ情報が含まれています (デバッグバンドル内)をダウンロードできます。

39
cletus

[〜#〜]更新[〜#〜]:IntelliJ IDEA 13+バージョン 提供できるデバッグ情報なしのローカル変数情報

JDKの一部であるJavaクラスは、サイズとパフォーマンス上の理由から、デバッグ情報なしでコンパイルされます。これらのクラスのデバッグ情報が必要な場合は、クラスがデバッグ情報を使用してビルドされる開発バージョンのJDKをインストールするか、デバッグ情報を有効にしてソースからデバッグするJDKのパーツを再ビルドして構成する必要があります。 jar内のこれらのバージョンのクラスを持つ新しいJDK。

このスレッド は、デバッグ情報を含むソースコードからrt.jarのJDKクラスを再構築する方法を示します。

追伸この質問はIntelliJ IDEAに固有のものではありません。

27
CrazyCoder
  1. JDKをインストールします
  2. src.jarパスを追加
    1. 移動:プロジェクト構造(プロジェクト設定)>プラットフォーム設定> SDK>ソースパス
    2. Src.jar へのパスを追加します
      • OSXの例:/Library/Java/JavaVirtualMachines/1.6.0_45-b06-451.jdk/Contents/Home
      • Windowsの例:C:\ Program Files\Java\jdk1.7.0_03(32ビットの場合はプログラム(x86)を確認)
    3. 索引付けを長時間待ちます!
  3. デバッガフィルタを削除
    1. 移動:設定>デバッガ>ステッピング
    2. 希望するパッケージのチェックを外します。 javax。*
14
Peter Tseng

「これらのクラスにステップインしないでください」情報に加えて、src.jarを構成する必要があります。プロジェクトを右クリックし、[モジュール設定を開く]を選択します。 [プラットフォームの設定]で[SDK]を選択します。 Java SDKバージョンを選択します。[Sourcepath]タブを選択し、[+]ボタンをクリックして、JDK(またはOSX JDKの個別のソースダウンロード)からsrc.jarを追加します)これにより、JDKクラスを開いて、デバッグ中にクラスにステップインできます。

3
codingismy11to7

私のMacでこれを実行して、Androidソースコードを取得しましたが、同様のアプローチでうまくいくはずです。

  • ファイル>プロジェクト構造

  • プラットフォーム設定で「SDK」を選択しました。

  • 「Android SDK」を選択しました

  • 選択された「ソースパス」タブ

  • 「+」を押した

  • My Javaソースコードの場所を参照

1
Peter Theill

設定-コンパイラ-Javaコンパイラ-Javaオプション、「デバッグ情報を生成する」オプションをチェックする必要があります。そうすると、デバッグ情報でコンパイルされます。

0
heaven