15

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

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


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


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

4

3 回答 3

9

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

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

假设您熟悉 Eclipse,请执行以下操作:

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

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

在此处输入图像描述

在寻找这个答案时,我发现以下页面很有帮助:

于 2012-03-05T12:57:01.807 回答
2

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

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

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

于 2016-09-03T13:38:17.147 回答
0

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

唯一的缺点是,如果您想在函数中设置断点,您的函数应该与主代码在同一个文件中。

于 2013-10-18T16:52:31.103 回答