【发布时间】:2012-05-02 04:34:22
【问题描述】:
我试图在反编译的代码中设置条件断点,但 Eclipse 一直给我错误:
条件断点有编译错误
原因:评估必须包含一个表达式或一组格式良好的语句
我的情况很简单,只是尝试与字符串值进行比较。我已经尝试了以下所有方法,但每一个都出现错误:
myObj.toString() == "abc123"
myObj.toString().equals("abc123")
if(myObj.toString() == "abc123"){ return true; }
true == true
我还尝试了在行尾有或没有分号的每种组合,以及间距和换行符的每种组合,以及在我的条件周围有或没有 {} 的每种组合。基本上,我不知道为什么这不起作用......
我试图调试的代码位于一个用 JD-Eclipse 反编译的 jar 中。正常断点在此代码中工作正常。
有人知道这里发生了什么吗???
【问题讨论】:
-
你是不是从反编译的源重新编译了jar,否则代码将与jar不匹配,例如局部变量名
-
嗯,但是当我尝试使用源中不存在的变量名时,我得到一个不同的错误,说变量名错误...
-
第一步是弄清楚反编译是否是问题所在。在 Eclipse 项目的“正常”代码中设置条件断点是否有效?
-
所以是的,条件断点似乎在我的正常代码中工作......一定是反编译代码的东西......
-
我有日志消息说明输出特定文本。然而,当我使用该值的条件断点进行调试时 - 断点永远不会发生 - 使用 F11 调试。没什么。随时给我 Visual Studio 来处理这种事情!
标签: java eclipse debugging breakpoints decompiler