任何R IDE都支持条件断点吗?

时间:2012-03-05 05:02:39

标签: r ide conditional-breakpoint

如果有的话,R IDE(例如StatET,Revolution R,RStudio,ESS,NppToR等)支持条件断点?

可以通过bp包中的debug或基于条件调用browser()的其他代码来获取。但是,能够切换特定行#并快速输入该特定行的条件断点可能更有效,而无需额外的代码或控制台活动。


注意1.我已经搜索了一些这些,似乎RStudio中没有条件断点,我认为对于StatET也是如此。 ESS似乎有支持(见this page),虽然我还不熟悉ess-tracebug以及它是否易于使用。它似乎也适用于旧版本的ESS;我还不熟悉更新版本的功能。


更新1.我正在选择一个答案(唯一一个--Andrie's)。关于任何 IDE是否支持条件断点的问题是可以回答的,幸运的是,Andrie已经证明存在一个解决方案。我仍然对支持这一点的任何其他IDE感兴趣,尽管Eclipse现在已经足够好了。 (目前,我更喜欢Rstudio,但这已经在他们的功能请求列表中了。)如果任何人都具备ESS的专业知识并且可以展示该功能,我相信它会使在这个问题上发生的其他人受益。

3 个答案:

答案 0 :(得分:9)

是的,这可以通过Eclipse中的StatET 2.0 + R 2.14-1来实现。

Eclipse支持条件调试,StatET 2.0支持可视调试(只要你有一个相当新版本的R。)

假设您了解Eclipse的方法,请执行以下操作:

  • 在Eclipse中启动调试会话(即调用Debug配置,而不是Run配置)
  • 在代码中设置断点
  • 打开Debug透视图
  • 运行您的代码

打开调试透视图后,您将看到一个包含Variables / Breakpoints选项卡的窗格。在“断点”选项卡中,选择断点,然后单击Conditional / Expression复选框并输入您的条件。

enter image description here

在搜索此答案时,我发现以下页面很有帮助:

答案 1 :(得分:1)

在rstudio中设置条件断点有一个小技巧:

for(i in 1:10){
  if(i==5){
    print("set the breakpoint at this line by shift+f9")
  }
  i*i
}

唯一的缺点是你需要添加一些额外的代码

答案 2 :(得分:0)

RStudio v0.98的预览版具有以下功能: http://www.rstudio.com/ide/docs/debugging/overview

唯一的缺点是,如果要在函数中设置断点,则函数应与主代码位于同一文件中。