无法在日食中放置断点

我使用JDK 1.6.0_18(32位)在windows vista home premium 64位上使用eclipse europa(3.5)。

通常情况下,我能够把断点放得很好; 但是,对于不属于项目的特定类(此类在.JAR文件中(.JAR文件是项目的一部分)),虽然我已将源目录附加到此.JAR文件,但我无法在这个类中放置一个断点。

如果我双击断点窗格(左边框),我会注意到放置了一个类断点。 我想知道是否没有调试信息; 但是,发现这个特定类是使用debug =“true”和debuglevel =“lines,vars,source”使用ant / javac任务编译的。 我甚至在这个类上运行jad以确认它确实包含调试信息。

那么,为什么eclipse阻止我放置一个断点?

编辑:只是这样每个人都理解上下文,这是一个在tomcat 6.0下运行的webapp。 我在外面启动tomcat后从eclipse远程调试应用程序。 该应用程序工作得很好。 我试图理解上面这个类的行为,因为eclipse不让我设置BP,所以我无法做到这一点。

PS:我在这里看到一些线索谈论BP没有被击中但在我的情况下,我无法放置BP!

PPS:在尝试1.6.0_18之前我尝试过JDK 1.6.0_16。

谢谢你的任何指示。

尝试查看您的配置Java-> debug-> Step过滤,有时它已启用,您无法在过滤的包内停止

听起来Eclipse在类路径上找不到jar文件,尽管你确实说jar文件是项目的一部分。 如果正常运行应用程序会发生什么? 你得到ClassDefNotFoundException或类似的东西?

如果检查运行/调试配置上的选项卡,您应该能够在运行时查看类路径上的路径和jar文件。 您还可以添加构建应用程序但不需要运行它的jar文件。

当尝试为.jsp页面添加断点时,结果发现该页面未使用JSP编辑器打开,这阻止了断点的设置。

虽然我已将源目录附加到此.JAR文件,但我无法在此类中放置断点。

你说“一个源目录”。 你确定,它与用于编译jar的版本相同吗? 如果您附加了不同的源代码版本,则行号可能不匹配,并且您的断点不会被触发。

我知道eclipse中的一个错误,其中断点不适用于特定版本的jdk 1.6.x更多信息请看这里

使用一个名为Jadclipse的插件在运行时反编译jar,将断点放在调用JAR方法的位置,然后按F6,你应该可以进入你的JAR方法。

只需简单刷新.jar文件就可以解决这个问题。

我能够在同一个包的所有其他类文件中放置断点,除了一个。 我观察到的是,当我在编辑器中打开这个类文件并选择“Link with Editor”时,eclipse没有把我带到这个类文件本身,而只是带到这个类文件的包中。

刷新后,“与编辑器链接”工作,我能够放置断点。

如果有人能够解释这种行为,那将会很有帮助。

步骤1:切换/启用断点在您希望开始调试代码的代码行或方法入口点设置断点。 右键单击代码行旁边编辑器的左边距,弹出上下文菜单。 在上下文菜单中选择切换断点

步骤2:配置断点以停止执行要开始调试,执行应在指定的断点处停止。 为此,单击断点属性并执行以下操作:

1. Check Hit count 2. Specify value as 1 3. Select “Suspend thread” option 

这将在程序到达断点时停止执行。

第3步:切换到调试透视图

在Eclipse中,选择Window – > Open Perspective – > Debug

Step4:在调试模式下运行

现在以调试模式运行程序。 选择Run – > Debug

现在程序开始在调试模式下运行,你会看到线程的状态为“running”

当程序到达断点时,线程的状态从“运行”变为“暂停”

步骤5:使用Expressions \ Watch变量\ Inspect调试代码

现在代码在断点处停止。 您可以使用监视变量/表达式来监视调试变量的当前值。 假设您在名为“counter”的变量处设置断点,并且程序在计数器变量处停止添加具有变量名称“counter”的表达式,这允许您在执行程序时监视变量的值您也可以右键单击计数器变量并从上下文菜单中选择“Inspect”如果是方法,则选择方法名称并单击“Step Into Selection”。 这将允许您逐行监视或调试方法执行。

步骤6:使用F6键进入该方法

要“进入”当前方法中的下一个可执行代码行,请按“F6键”。 这会将程序控制从当前行传递到下一个可执行代码行。