ski*_*ppy 72 eclipse debugging breakpoints
我有一个小项目,当在Eclipse调试器中运行时,似乎总是停在FileInputStream.class第106行,其中文件被打开.没有设置断点,但Eclipse的行为就像我在这里有断点一样.如果我清除所有断点,它仍然会发生.
我在同一个Eclipse工作区中有第二个更大的项目,它没有遇到这个问题.
我刚刚将旧的Linux机器从旧的Linux机器上移开,我在Europa Eclipse中开发了这个问题并将这个问题带到我的新机器上,我继续在Ganymede Eclipse中看到问题.问题在操作系统和Eclipse版本中持续存在,但显然不是跨项目.我不明白!我浏览了这个项目目录中的每个文件,找不到任何可能导致Eclipse在FileInputStream中停止的文件.
更多信息:明显的断点实际上不适用于FileInputStream的第106行; 它似乎是FileNotFoundException的异常断点,从FileInputStream中从该行调用的本机代码抛出.但同样,我似乎根本没有任何断点.是否在其他地方定义了异常断点?
Von*_*onC 113
你有没有尝试取消选择
Window > Preferences > Java > Debug : Suspend execution on uncaught exceptions
Run Code Online (Sandbox Code Playgroud)
?(例如,在这个帖子中提到)

为什么Eclipse以这种方式工作?
它可以追溯到2002年,当时剥离了断点对象层次结构.
为了设置一个断点,与旧的API,客户端所需的Java模型对象-比如
IType,IField等
有了新的API,所有由调试模型所需的类型名,字段名等.这允许客户端在Java模型对象不可用时设置断点.
客户端现在指定要将断点与之关联的资源(在我们将其约束到关联的Java模型资源之前).断点现在也可以"隐藏".也就是说,它们不需要在断点管理器中注册.
断点也可以选择性地持久化(标记只允许持久化所有/不包含标记类型).
这使得调试模型更加灵活,并为客户提供更多构建块.这也简化了Java调试实现的某些部分 - 例如,功能"
suspend on any uncaught exception"只是为名为"java.lang.Throwable" 的类型设置断点,而不是IType特定项目中的特定断点.
断点未向断点管理器注册(即隐藏) - 它仅为一个客户端所知并使用.
另一个例子是"run to line breakpoint".在IJavaRunToLineBreakpoint已被删除,因为它的特殊功能,不再需要.现在,Java调试ui只是创建一个隐藏的,非持久的并且命中数为1的"行断点".这是向客户端提供构建块的示例.
Mar*_*eel 37
我有一个类似的问题,但接受的解决方案对我不起作用.我正在进行Eclipse Android开发,并设置了一些断点,后来取消了它们.即使我禁用它们,Eclipse也会在这些幻像断点处停止执行.我的解决方案是打开Breakpoints窗口:
窗口>显示视图>其他...
调试>断点
然后右键单击任何断点并选择"全部删除"
不幸的是,你必须重置所有有效的断点,但这对我有用,并防止了很多焦虑和挫折.
一些图片引导他人:


对于那些没有找到其他解决方案有用的人,我找到了解决问题的个人方法.我使用.jar库,它是通过在工作区中构建另一个项目而生成的.如果我在.java中将断点设置到库项目中,那么在调试最终项目时将触发断点.但是,当调试器暂停执行时,会显示.class文件,该文件有自己的断点,因此此处未显示设置到.java文件中的断点!
解决方案: 为了删除断点,您必须将断点删除到库项目中的.java文件中.
| 归档时间: |
|
| 查看次数: |
31315 次 |
| 最近记录: |