Поддерживает ли какие-либо R IDE условные точки останова?
Какие, если есть, R IDE (например, StatET, Revolution R, RStudio, ESS, NppToR, другие) поддерживают условные точки останова?
Это доступно через bp
в пакете debug
или через дополнительный бит кода, который вызывает browser()
на основе условия. Тем не менее, более эффективно иметь возможность переключать определенную строку # и быстро вводить условную точку останова для этой конкретной строки без дополнительных действий с кодом или консолью.
Примечание 1. Я немного искал их, и кажется, что условные точки останова недоступны в RStudio, и я думаю, что то же самое может быть верно для StatET. Кажется, что в ESS есть поддержка (см. эта страница), хотя я еще не знаком с ess-tracebug и легко ли это использовать, Также кажется, что это работает только для более старых версий ESS; Я еще не знаком с функциональностью более поздних версий.
Обновление 1. Я выбираю ответ (единственный - Andrie's). Был задан вопрос о том, поддерживает ли какая-либо IDE условные точки останова, и, к счастью, Андри продемонстрировала, что существует решение. Я по-прежнему интересуюсь любыми другими IDE, которые поддерживают это, хотя Eclipse пока достаточно хорош. (На данный момент я предпочитаю Rstudio, но это уже входит в список их функций.) Если у кого-то есть опыт работы в ESS и он может продемонстрировать эту функциональность, я уверен, что это принесет пользу другим, которые могут возникнуть по этому вопросу.
Ответы
Ответ 1
Да, это возможно при Eclipse
+ StatET 2.0
в R 2.14-1
.
Eclipse
поддерживает условную отладку, а StatET 2.0
поддерживает визуальную отладку (если у вас есть довольно новая версия R.)
Предполагая, что вы знаете свой путь вокруг Eclipse, сделайте следующее:
- Запустите сеанс отладки в Eclipse (т.е. запустите конфигурацию отладки, а не конфигурацию запуска)
- Установить контрольную точку в коде
- Откройте перспективу отладки
- Запустите свой код
При открытии перспективы отладки у вас будет панель, содержащая вкладки для Variables / Breakpoints
. На вкладке точек останова выберите свою точку останова, затем нажмите кнопку Conditional / Expression
и введите условие.
![enter image description here]()
В поисках этого ответа я нашел следующие страницы полезными:
Ответ 2
В предварительном выпуске RStudio v0.98 есть эта функция:
http://www.rstudio.com/ide/docs/debugging/overview
Единственный недостаток - ваша функция должна находиться в том же файле с вашим основным кодом, если вы хотите установить контрольную точку в своей функции.
Ответ 3
Есть небольшой трюк, чтобы установить условную точку останова в rstudio:
for(i in 1:10){
if(i==5){
print("set the breakpoint at this line by shift+f9")
}
i*i
}
Единственный недостаток - вам нужно добавить дополнительный код