【问题标题】:RStudio enters debug mode for every function error - how can I stop it?RStudio 针对每个函数错误进入调试模式 - 我该如何停止它?
【发布时间】:2015-05-15 03:28:22
【问题描述】:

我已经使用 RStudio 多年了,这在我之前从未发生过。出于某种原因,每次函数抛出错误时,RStudio 都会进入调试模式(我不希望这样)。即使在单个函数上使用了 undebug()。

> undebug(http.get)
Warning message:
In undebug(fun) : argument is not being debugged
> x = http.get(country = 'KE')

http --timeout=60 get "http://foo@bar.com/observation?country=KE" > freshobs.json </dev/null
Error in fromJSON(file = "freshobs.json") : unexpected character 'O'

Error in el[["product_name"]] : subscript out of bounds
Called from: grepl(el[["product_name"]], pattern = "json:", fixed = T)
Browse[1]> Q

我使用的任何中断功能都会导致调试模式启动 - 这很烦人,因为它会打开源代码查看器并让您远离代码。有人知道如何停止此功能吗? 当首选项中的“仅当我的代码包含错误时使用调试模式”复选框被选中和未被选中时,就会发生这种情况。

谢谢!

【问题讨论】:

    标签: r debugging rstudio


    【解决方案1】:

    我尝试通过将options(error = NULL) 放入我的.Rprofile 来解决此问题,但这不起作用。

    成功的方法是转到"Debug" -> "On Error" menu and select "Message only"。这实际上与设置 options(error = NULL) 相同,但它在重新启动后保持不变。

    【讨论】:

      【解决方案2】:

      好吧,我想我已经解决了。不知道这是怎么发生的,但是在 Rstudio 中运行

      > options()$error # returned:
       (function () 
      {
          .rs.breakOnError(FALSE)
      })()
      

      从终端运行 R 时,同样的事情返回 NULL。 --> 我跑了:

      options(error=NULL)
      

      这解决了问题 - 但只是暂时的。当我退出并重新启动 Rstudio 时,代码需要再次运行。当我找到更改默认值的方法时会更新...干杯。

      【讨论】:

      • 我不认为这是 rstudio 的默认设置,至少对我来说不是。你的 r 个人资料中有什么东西吗
      • 我也不认为这是默认设置(因为这个问题现在才出现) - 不知何故它被改变了。
      • 你可以定义options(error = stop)options(error = recover) 也很有用。
      • 在 macOS 上的 RStudio (v1.0.12) 中对我来说绝对是默认设置
      • 我认为这发生在我身上之后:在 .Rmd 文件中运行一个错误的代码块。单击 traceback 会更改 getOption("error")。然后我的会话由于一些 C++ 代码而崩溃。我正在使用 Rstudio 版本 1.1.383 运行 Windows。运行options(error = NULL) 并关闭会话为我解决了这个问题。
      【解决方案3】:

      没有什么对我有用:我有一个函数,当我运行时会继续调试。

      对我来说解决方案是(请谨慎):Debug (menü) -&gt; clear All Breakpoints ...

      【讨论】:

        【解决方案4】:

        reset my RStudio Desktop preferences 并且问题消失了。

        注意这次重置后options()$error的返回值为:

        (function () 
        {
            .rs.recordTraceback(TRUE, 5, .rs.enqueueError)
        })()
        

        此更改之前的值是 comment above

        【讨论】:

          【解决方案5】:

          我在 RStudio Cloud 中遇到了同样的问题。通过选择不同版本的 R 解决了这个问题。 我使用的是 R3.6.0 并将其更改为 R3.5.3(右上角的选项)。它刷新了控制台,调试停止了。然后 R3.6.0 又好了。 干杯。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-03-27
            • 2012-04-15
            • 2011-06-12
            • 1970-01-01
            • 1970-01-01
            • 2022-11-22
            • 1970-01-01
            相关资源
            最近更新 更多