在Scala中调试时以交互方式执行代码

时间:2012-01-18 21:02:15

标签: debugging scala interactive

在调试时是否有将代码插入Scala应用程序的方法?例如,我可以拥有这样的东西,

var c = 1.0
0.until(10).foreach{ i =>
   if (i == 5) {
      startDebuggingMagicHere()
   }
}

然后,我可以通过方法和分配检查并与ci以及范围内的任何其他变量进行交互。

1 个答案:

答案 0 :(得分:3)

在Eclipse的Scala-IDE插件中,支持调试。在Scala代码中设置断点,您将能够做有限的事情。目前的支持不如Java支持。我相信它计划在夏季前改进。

你能做的是:

  1. 使用“变量”视图查看变量的当前值并修改值,
  2. 告诉调试器“drop to frame”,以便它使用堆栈中的原始值再次启动当前方法调用,
  3. 修改代码并保存导致调试器插入新代码并放到框架中的文件,即重新启动方法调用(这并不总是有效 - 取决于您更改重启应用程序可能需要的代码的数量,例如,如果你改变了类定义)
  4. 你不能做的是:

    1. 从编辑器中检查变量,
    2. 在“显示”视图中编写代码并执行它。这两个都适用于Java,但不适用于Scala。