【问题标题】:R: How do I set a breakpoint in a different file?R:如何在不同的文件中设置断点?
【发布时间】:2016-08-10 14:50:42
【问题描述】:

我有两个文件:

Main.R

调用.R

Main.R 有一行

source('Called.R')

Main.R 调用 Called.R 中的函数。我可以从 Main.R 进入 call.R 中的函数,没问题。

但是,如果我在 Called.R 中的函数中设置断点并从 Main.R 调用该函数,则执行不会在断点处停止。但是,如果我将函数移到 Main.R 中,执行会停止。

知道 RStudio 的调试器是否可以识别“源”文件中设置的断点?我什至找不到文档中提到的问题。

谢谢

【问题讨论】:

    标签: r debugging


    【解决方案1】:

    在该函数内添加一个临时的browser()

    【讨论】:

      【解决方案2】:

      另外:这个答案来自 RStudio 支持。我对此进行了测试,它可以工作。

      “嗨,安德鲁,

      这是调试器的限制。调试器通过修改已加载的函数并向其添加断点来工作。当您 source() 包含函数的文件时,它会用没有断点的新副本替换该函数。

      对于调试,您可以执行以下操作:

      1) 手动来源“称为.R”

      2) 在函数中设置断点

      3) 注释掉 main.R 中的 source("called.R") 行

      4) 来源 main.R

      你应该打断点。

      乔纳森。”

      【讨论】:

      • 或者使用 RStudio 函数 debugSource 而不是 source (不要忘记在稍后上线之前撤消它;-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 2016-02-09
      • 1970-01-01
      相关资源
      最近更新 更多