Интерактивно выполнять код во время отладки в Scala - PullRequest
1 голос
/ 19 января 2012

Есть ли способ для вставки кода в приложение Scala при отладке? Например, могу ли я иметь что-то вроде этого,

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

где я мог бы затем проверить и взаимодействовать с c, i и любой другой переменной в области видимости через методы и присваивания.

1 Ответ

3 голосов
/ 22 января 2012

В плагине Scala-IDE для Eclipse поддерживается отладка. Установите точку останова в коде Scala, и вы сможете делать ограниченные вещи. Текущая поддержка не так хороша, как для Java. Я считаю, что к лету планируется улучшение.

Что вы можете сделать:

  1. используйте представление «переменные» для просмотра текущих значений переменных и изменения значений,
  2. сказать отладчику «перетащить в кадр», чтобы он снова начал текущий вызов метода, используя исходные значения из стека,
  3. измените код и сохраните файл, в результате чего отладчик вставит новый код и поместит его во фрейм, т.е. перезапустит вызов метода (это не всегда работает - в зависимости от того, насколько сильно вы измените код, вам может потребоваться перезапустить приложение, например, если вы измените определение класса)

То, что вы не можете сделать, это:

  1. проверять переменные из редактора,
  2. написать код в режиме «отображения» и выполнить его. Оба они работают с Java, но не с Scala.
...