Поддерживают ли какие-либо R IDE условные точки останова?


, который, если таковые имеются, Р Иды (например, государственного, переворота Р, в RStudio, ЕСС NppToR, другие) поддерживает условные точки останова?

Это доступно через bp в пакете debug или через дополнительный бит кода, который вызывает browser() на основе условия. Тем не менее, может быть более эффективным иметь возможность переключать определенную строку # и быстро вводить условную точку останова для этой конкретной строки, не имея дополнительного кода или консольных действий.
Примечание 1. Я искал ... bit для них, и кажется, что условные точки останова недоступны в RStudio, и я думаю, что то же самое может быть верно для StatET. Кажется, что в ESS есть поддержка (см. эту страницу), хотя я еще не знаком с ess-tracebug и легко ли его использовать. Также кажется, что это работает только для более старых версий ESS; я еще не знаком с функциональностью для более поздних версий.

Обновление 1. Я выбираю ответ (единственный - Андри). Вопрос заключался в следующем ответ на вопрос, поддерживает лилюбую IDE условные точки останова, и, к счастью, Андри продемонстрировал, что решение существует. Я по-прежнему заинтересован в любых других Идах, которые поддерживают это, хотя Eclipse пока достаточно хорош. (На данный момент я предпочитаю Rstudio, но это уже есть в их списке запросов функций.) Если кто-то имеет опыт в ESS и может продемонстрировать эту функциональность, я уверен, что это принесет пользу другим, кто столкнется с этим вопросом.

3 13

3 ответа:

Да, это возможно с помощью Eclipse + StatET 2.0 в R 2.14-1.

Eclipse поддерживает условную отладку, и StatET 2.0 поддерживает визуальную отладку (если у вас есть довольно свежая версия R.)

Предполагая, что вы знаете, как обойти Eclipse, сделайте следующее:

  • запуск сеанса отладки в Eclipse (т. е. вызов конфигурации отладки, а не конфигурации запуска)
  • установите точку останова в коде
  • откройте отладочную перспективу
  • запускайте свой код

С открытой перспективой отладки у вас будет панель, содержащая вкладки для Variables / Breakpoints. На вкладке точки останова выберите точку останова, затем установите флажок Conditional / Expression и введите условие.

Введите описание изображения здесь

В поисках этого ответа я нашел следующие страницы полезными:

Предварительный выпуск RStudio v0. 98 имеет эту функцию: http://www.rstudio.com/ide/docs/debugging/overview

Единственным недостатком является то, что ваша функция должна находиться в одном файле с вашим основным кодом, если вы хотите установить точку останова в вашей функции.

Есть небольшая хитрость, чтобы установить условную точку останова в rstudio:

for(i in 1:10){
  if(i==5){
    print("set the breakpoint at this line by shift+f9")
  }
  i*i
}
Единственным недостатком является необходимость добавления дополнительного кода