Debugging Scala IDE调试器“;踏入;行为
当前行为:Debugging Scala IDE调试器“;踏入;行为,debugging,scala,Debugging,Scala,当前行为: 在案例上放置断点两次(n).行 在“单步执行”时,控件转到x match{行 在“单步执行”时,控件转到def TwiceTest={行 在进一步“单步执行”时,控件转到if(z%2==0).行 预期行为: 在案例上放置断点两次(n).行 在“单步执行”时,如果(z%2==0),控件将转到行 代码片段 object testobj extends App { def TwiceTest = { val x = Twice(21) x match {
- 在
行案例上放置断点两次(n).
- 在“单步执行”时,控件转到
行x match{
- 在“单步执行”时,控件转到
行def TwiceTest={
- 在进一步“单步执行”时,控件转到
行if(z%2==0).
- 在
行案例上放置断点两次(n).
- 在“单步执行”时,如果(z%2==0),控件将转到
行
object testobj extends App {
def TwiceTest = {
val x = Twice(21)
x match {
case Twice(n) => Console.println(n)
} // prints 21
}
TwiceTest
}
object Twice {
def apply(x: Int): Int = x * 2
def unapply(z: Int): Option[Int] = {
if (z % 2 == 0) Some(z / 2) else None
}
}
当调试一个带有大量嵌套提取器的scala程序时,当前的行为令人恼火。我用新的scala调试器和Java调试器尝试了这个方法,但结果相同
步骤筛选在这种情况下也没有帮助
作为一种解决方法,我将在unapply
方法中设置一个断点,并从第一个断点开始运行resume
。是否有人可以建议我一种更干净的方法
编辑1
我正在使用Scala IDE(最新的夜间版本。2.1.0.nightly-2_09-201208250315-529cd70)
Eclipse版本:Indigo Service Release 2构建id:20120216-1857
操作系统:Windows 7(64位)字节码中的行号信息错误。这不是IDE的问题,而是Scala编译器的问题。编译模式匹配时,合成代码有时会获取错误的位置信息
我假设您正在使用Scala 2.9.2。在Scala的下一个版本(2.10.0)中,模式匹配器有了显著的改进,所以不妨尝试一下。@om nom nom我正在使用Eclipse Indigo和Scala IDE pluginI建议在@sschae上发布这个问题。如果我现在已经在Scala IDE用户组上发布了这个问题。但在组中还看不到它…可能正在进行调整阶段列表未被管理。Google groups有时会在Web界面中显示发送邮件时遇到问题。如果出现问题,请在几个小时后再次查看。@sschaef我在用户组中重新发布了问题,并收到了此弹出消息。您的主题已创建,并将在获得批准后出现。