【问题标题】:Do any R IDEs support conditional breakpoints?是否有任何 R IDE 支持条件断点?
【发布时间】:2012-03-22 15:25:14
【问题描述】:

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

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


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


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

【问题讨论】:

  • 如果你想在 RStudio 中看到这个特性,你可以在他们的网站上创建一个特性请求。他们回复了我做的一些,尽管他们只回复说它被放在了要实现的功能列表中:)。
  • @PaulHiemstra 某人made that request a year ago,所以我将避免重复功能请求。具有讽刺意味的是,这个问题在 [Rstudio“条件断点”] 上的网络搜索中排名很高。 :)
  • 无论如何我都会创建请求,这会提醒 RStudio 的人们这个特殊功能很重要。没有办法对某些改进或错误进行投票,因此多次发布请求是获得更多关注的机制。

标签: r ide conditional-breakpoint


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 太好了,谢谢!这是我尝试 StatET 的一个令人信服的理由。
【解决方案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
    }
    

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

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多