首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日食条件断点坏了吗?

日食条件断点坏了吗?
EN

Stack Overflow用户
提问于 2012-04-20 15:07:32
回答 6查看 17.5K关注 0票数 10

我试图在反编译代码中设置一个条件断点,但是Eclipse一直给我错误:

条件断点有编译错误 原因:计算必须包含表达式或格式良好的状态块。

我的情况非常简单,只是试图与字符串值进行比较。我已经尝试了以下所有的方法,并且每一个都会出错:

代码语言:javascript
复制
myObj.toString() == "abc123"
myObj.toString().equals("abc123")
if(myObj.toString() == "abc123"){ return true; }
true == true

我也试过在行尾有或没有分号的每一个组合,间隔和新行的每一个组合,以及有或没有{}包围我的条件的每一个组合。基本上,我不知道为什么这不管用..。

我试图调试的代码在一个jar中,该jar是用decompiled解压缩的。在此代码中,普通断点工作正常。

有人知道这里发生了什么吗?

EN

回答 6

Stack Overflow用户

发布于 2012-04-20 15:27:26

日食常见问题页面包含正确CBP定义的语法,以及它们无法工作的最常见原因。就你的情况而言,我认为以下几点适用:

如果在类文件不包含局部变量表的类中设置断点,则可能发生这种情况。例如,假设您希望在Class.forName(String)上设置一个条件断点。如果您有rt.jar的源附件,内容辅助将允许您通过其变量名className引用该参数。但是,在调试运行时,只有当类文件包含局部变量表时,才会知道变量名。根据编译时使用的选项,这些信息可能已从类文件中删除。

JD在解压缩jar时可能会生成变量名,因此在条件表达式中使用"myObj“会产生编译时错误。

票数 4
EN

Stack Overflow用户

发布于 2012-04-27 16:04:10

也许条件断点比一般情况下的工作要少。例如,考虑:

bug.cgi?id=278146

票数 2
EN

Stack Overflow用户

发布于 2013-01-02 08:55:02

这可能是日食中的一个bug。eclipse所做的是将一个新方法或类似的方法编织到文件的源代码中,然后将其编译起来。如果在这个过程中出了问题,您的条件断点将神秘地失败。

您可以遵循下面使用的方法,在调试中运行eclipse来尝试跟踪问题:-

bug.cgi?id=341232#c21

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10248795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档