Debugging IntelliJ IDEA中的JDK源代码
如何在IntelliJ IDEA 7中逐步浏览JDK源代码并查看调试信息?我目前可以点击断点并单步执行代码,但调试信息不可用。这意味着我看不到局部变量的值 如果有必要的话,我只想逐步浏览一个类的源代码。Debugging IntelliJ IDEA中的JDK源代码,debugging,intellij-idea,java,Debugging,Intellij Idea,Java,如何在IntelliJ IDEA 7中逐步浏览JDK源代码并查看调试信息?我目前可以点击断点并单步执行代码,但调试信息不可用。这意味着我看不到局部变量的值 如果有必要的话,我只想逐步浏览一个类的源代码。 值得一提的是,它是javax.swing.text.html.HTMLDocument类,我确实有一个相应的.java文件的副本。如果您查看[file menu->]Settings->Debugger->Stepping,您将看到一个列表“请勿进入这些类”,其中可能列出了“java.*”。是这
值得一提的是,它是
javax.swing.text.html.HTMLDocument
类,我确实有一个相应的.java
文件的副本。如果您查看[file menu->]Settings->Debugger->Stepping,您将看到一个列表“请勿进入这些类”,其中可能列出了“java.*”。是这样吗?你可以把它关掉
显然,调试信息不可用。根据:
遗憾的是,JDK类中有参数和局部变量的调试信息
几年前,我提出了一个请求,要求Idea从源代码中推断出必要的信息(基本上是将变量名转换为索引,再转换为本地变量的方法):请投票/评论 作为一种解决方法,您可以从源代码中重新编译JDK,但需要排除一些没有附加所有所需源代码的类
有趣的是,您可以下载(在调试包中)。更新:IntelliJ IDEA 13+版本 作为JDK一部分的Java类由于大小和性能的原因在编译时没有调试信息。如果希望在这些类中包含调试信息,则需要安装JDK的开发版本,其中类是使用调试信息构建的,或者在启用调试信息的情况下从源代码重新构建要调试的JDK部分,并在JAR中使用这些版本的类配置新的JDK 提供如何从源代码中重新生成rt.jar中的JDK类以及调试信息的说明
另外,这个问题不是IntelliJ IDEA特有的。设置-编译器-java编译器-java选项,您应该选中“生成调试信息”选项,然后,它将使用调试信息进行编译。以及“不要进入这些类”信息,应该配置src.jar。右键单击项目,选择“打开模块设置”。在平台设置下,选择“SDK”。选择您正在使用的Java SDK版本。选择Sourcepath选项卡,点击“+”按钮,然后从JDK(或OSX JDK的单独源代码下载)添加src.jar。这将允许您在调试时打开JDK类并进入它们。我在Mac上这样做是为了获得Android源代码,但类似的方法也适用于您
- 文件>项目结构
- 在平台设置下选择“SDK”
- 选择“Android SDK”
- 选定的“源路径”选项卡
- 按下“+”
- 浏览到我的Java源代码的位置
- OSX下载:
- Windows下载:
- OSX示例:/Library/Java/JavaVirtualMachines/1.6.0_45-b06-451.jdk/Contents/Home
- Windows示例:C:\Program Files\Java\jdk1.7.0\U 03(检查32位的程序(x86))
您可以从外部库-->rt.jar中找到源代码,正如我在原始文章中提到的,我可以在javax.*类中很好地命中断点。问题是调试信息不可用。无论如何,只是为了确定,我按照你的建议做了,但是调试信息仍然不可用。我使用的是Ubuntu 16.04和OpenJDK 8。为了获得JDK源代码,我必须单独安装一个附加包:
sudo apt get install openjdk-8-source
。感谢您提供的解决方案。