在IntelliJ IDEA中逐步执行JDK源代码

时间:2009-08-21 19:50:38

标签: debugging intellij-idea java

如何在IntelliJ IDEA 7中单步执行JDK源代码并查看调试信息?我当前可以点击断点并逐步执行代码,但调试信息不​​可用。这意味着我无法看到局部变量的值。

如果重要的话,我只想逐步浏览一个类的源代码 对于它的价值,它是javax.swing.text.html.HTMLDocument类,我有相应的.java文件的副本。

7 个答案:

答案 0 :(得分:38)

如果查看[文件菜单 - >]设置 - >调试器 - >单步执行您将看到一个列表“不要进入这些类”,可能会在其中列出“java。*”。是这样的吗?你可以把它关掉。

显然调试信息不​​可用。根据{{​​3}}:

  

遗憾的是,JDK类具有参数调试信息和剥离的局部变量。

     

多年前,我提出了一个请求,即Idea应该从源代码中推断出必要的信息(基本上将变量名称转换为索引到方法local var):
  this thread

     

请投票/评论。

     

作为一种解决方法,您可以从源代码重新编译JDK,但是您需要排除一些没有附加所有必需源代码的类。

有趣的是,您可以下载Debugger: Show variable information when no debug info(在DEBUG包中)。

答案 1 :(得分:27)

更新:IntelliJ IDEA 13+版本can provide local variables information without debug info

作为JDK的一部分的Java类在没有调试信息的情况下编译,这是出于大小和性能原因。如果您想在这些类中使用调试信息,您需要安装JDK的开发版本,其中使用调试信息构建类,或者在启用调试信息的情况下重建要从源调试的JDK部分并配置带有这些版本的jar的新JDK。

This thread提供了如何使用调试信息从源代码重建rt.jar中的JDK类的说明。

P.S。这个问题不是IntelliJ IDEA特有的。

答案 2 :(得分:14)

  1. 安装JDK
  2. 添加src.jar路径
    1. 转到:项目结构(项目设置)>平台设置> SDKs> SOURCEPATH
    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(检查程序(x86)是否为32位)
    3. 等待很长时间才能建立索引!
  3. 删除调试器过滤器
    1. 转到:设置>调试器>步进
    2. 取消选中您想要的包裹,例如的javax。*

答案 3 :(得分:3)

除了“不要进入这些类”信息外,还应配置src.jar。右键单击该项目,选择“打开模块设置”。在“平台设置”下,选择“SDK”。选择您正在使用的Java SDK版本。选择Sourcepath选项卡,单击“+”按钮,然后从JDK(或OSX JDK的单独源代码下载)添加src.jar。这将允许您打开JDK类并在调试时进入它们。

答案 4 :(得分:1)

我在Mac上做了这个以获取我的Android源代码,但类似的方法应该适合你。

  • 档案>项目结构

  • 在平台设置下选择“SDK”。

  • 选择“Android SDK”

  • 选择“Sourcepath”标签

  • 按“+”

  • 浏览到我的Java源代码的位置

答案 5 :(得分:0)

设置 - 编译器 - java编译器 - java选项,你应该检查选项“生成调试信息”,然后,它将使用调试信息进行编译。

答案 6 :(得分:0)

您可以从外部库中找到源代码-> rt.jar