当进入类实例化时,eclipse调试器转到本机代码

时间:2012-05-09 05:39:31

标签: java eclipse debugging

我最近升级到helios,现在每次进入类的构造函数(例如Cat myCat = new Cat();)时,eclipse调试器都会将堆栈显示为

java stack trace entering instantiation

要获得实际的构造函数代码,我必须多次走出来这很烦人。每个类都会发生这种情况,尽管有堆栈,但我从未在控制台中看到任何错误消息。我如何解决这个问题,以便它直接进入我的类的构造函数?

这仅在第一次使用该类时发生,甚至对于与当前类相同的src文件中的类也是如此。

4 个答案:

答案 0 :(得分:13)

Eclipse在Java调试器首选项中有一个步骤过滤器首选项。其默认首选项会过滤掉java.lang.ClassLoader,但这不起作用。这可能与最近安装并切换到使用jre7有关。为了解决我的问题,我添加了一个过滤器来逐步执行java.lang包中的任何代码。

enter image description here

答案 1 :(得分:5)

我认为ClassNotFoundException只是作为类加载的一部分发生 - 问题是你有一个断点设置为在抛出这些异常时触发。我的猜测是你的Eclipse版本在默认情况下打开了这个断点,而旧版本没有。

查看this link,它会报告类似的问题并提供解决方案,这只是为了禁用该断点。

(为了教导鱼类以及所有这些,谷歌搜索术语是“eclipse debugger launcher $ appclassloader”。)

答案 2 :(得分:0)

在Eclipse中报告的堆栈跟踪中,似乎ClassNotFoundException已初始化并被抛出,您编写的应用程序是否遇到了任何问题?

您是否在类的构造函数中设置了断点?你根本无法进入构造函数?

您是使用Class.forname()还是导入将课程介绍给JRE?

答案 3 :(得分:0)

对于使用运行openjdk的实验室机器的学生来说,解决方案似乎是按照与https://stackoverflow.com/a/10525351/1449799中所述相同的首选项添加步进过滤器,但添加jdk.*