为什么 Eclipse 在调试来自 JDK 的类文件时不显示局部变量值?

2022-09-02 01:44:02

我想调试文件。例如,一些来自JDK。我下载了源代码并附加了它们。.class

public File[] listFiles(FilenameFilter paramFilenameFilter)
{
   String[] arrayOfString = list(); // now we here
   if (arrayOfString == null) return null;
   ....
}

然后我键入 F6 并移动到下一行。之后,我尝试观察的值,但我看到以下内容:arrayOfString

表达式视图:

这是正常的情况吗?有没有办法调试?

更新 1:

enter image description here


更新 2:

enter image description here

更新 3:

enter image description here


答案 1

问题在于,来自 JDK 的源/类文件在没有调试信息的情况下编译,因此 eclipse 无法检查这些 var。有关详细信息,请参阅此答案

要解决您的问题,您需要获得不同的rt.jar或自己编译


答案 2

您可以在“变量”窗口中查看所有变量值。表达式仅在具有作用域时才显示值,但有时它们的行为方式与我们想要的不符。

所以我的建议是你应该使用“变量”窗口来查看所有变量及其值。