我想调试.class
个文件。例如来自JDK的一些。我下载了源代码并附上了它们。
public File[] listFiles(FilenameFilter paramFilenameFilter)
{
String[] arrayOfString = list(); // now we here
if (arrayOfString == null) return null;
....
}
然后我输入 F6 并移至下一行。在那之后,我尝试观察arrayOfString
的值,但我看到以下内容:
表达式视图:
情况正常吗?有没有办法调试?
更新1:
更新2:
更新3:
答案 0 :(得分:17)
问题是来自JDK的源/类文件是在没有调试信息的情况下编译的,因此eclipse无法检查这些变量。有关详细信息,请参阅this answer。
要解决您的问题,您需要获得不同的rt.jar或compile it yourself
答案 1 :(得分:0)
您可以在“变量”窗口中看到所有变量值。表达式仅在具有范围时显示值,但有时它们的行为方式与我们不同。
所以我的建议是你应该使用“Variables”窗口查看所有变量及其值。
答案 2 :(得分:0)
我建议在选定的表达式ctrl
上使用shift
+ i
+ inspect
。
其他选项是将Display
视图添加到您的环境中,您可以在其中键入自己的表达式并检查它们,就好像它们放在代码中一样。
答案 3 :(得分:0)
在“表达式”视图中,您可以输入任何表达式,Eclipse将尝试在当前执行上下文中对其进行评估。这意味着如果您的表达式在当前上下文中无效(例如,您尝试评估object.myMethod()并且object为null),则会出现您显示的错误。
答案 4 :(得分:0)
当这种情况开始发生在我身上时,其中一些解决方案并未解决,这并不是我开始体验的唯一问题。
我想提出另一种解决方案(包括我在内)。尽可能多地迁移到Android Studio,并开始熟悉新的IDE。如果要为公司开发,请尝试让它在你的工作时间内工作,留出时间来迁移这些,因为有些会很容易,而且有些人可能不会使用NDK组件。
但是,由于Eclipse不再受到支持而且从Google专注于Android Studio,我们(当然只在我看来)开始学习新环境是最好的。它现在处于一个相当稳定的地步,它超越了通过Eclipse编程的常规Android应用程序开发方面。
答案 5 :(得分:-1)
是的,您可以通过使用鼠标光标选择表达式,从菜单中选择inspect
选项(在监视下方)。确保您已正确选择整个表达式。
如果以下是代码
if(object.value())
{
// some code
}
因此请仅选择object.value()
,然后右键单击并选择inpsect
另一种选择是查看variable
标签中的变量值
答案 6 :(得分:-1)
采取Windows - >偏好 - > Java - >编译器,从Eclipse菜单栏和验证复选框中选中“将变量属性添加到生成的类文件(由调试器使用)”。