Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging Scala IDE调试器“;踏入;行为_Debugging_Scala - Fatal编程技术网

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我在用户组中重新发布了问题,并收到了此弹出消息。
您的主题已创建,并将在获得批准后出现。