使用 RStudio 调试从另一个函数调用的函数
debugging a function called from another function with RStudio
我有两个脚本,main.r
# test
a = 1
source("fun.r")
b = fun(a)
c = a + b
和fun.r
# function
fun <- function(a){
t = a*2
b = t + 1
}
我在fun.r第4行b = t + 1
下了一个断点。 RStudio 会忽略该断点。当我 运行 main.r 时,RStudio 不会在 fun.r 中的第 4 行停止:作为事实上,它根本不会停止。如何在 RStudio 中调试从另一个函数调用的函数?
R 的 source
函数不考虑断点。如果你想调试函数,你可以试试这个:
来源 fun.r(单独)。您将看到 fun()
的副本出现在环境窗格中。
添加断点。您将在环境窗格中看到标有断点图标的 fun()
副本。
从 main.r 中删除来源 fun.r 的行(不需要,因为它已经来源)
来源main.r
你会遇到断点。
要记住的重要一点是,函数必须已经存在才能在其上设置断点,并且 source
将具有断点的副本替换为没有断点的新副本一个断点。
我有两个脚本,main.r
# test
a = 1
source("fun.r")
b = fun(a)
c = a + b
和fun.r
# function
fun <- function(a){
t = a*2
b = t + 1
}
我在fun.r第4行b = t + 1
下了一个断点。 RStudio 会忽略该断点。当我 运行 main.r 时,RStudio 不会在 fun.r 中的第 4 行停止:作为事实上,它根本不会停止。如何在 RStudio 中调试从另一个函数调用的函数?
R 的 source
函数不考虑断点。如果你想调试函数,你可以试试这个:
来源 fun.r(单独)。您将看到
fun()
的副本出现在环境窗格中。添加断点。您将在环境窗格中看到标有断点图标的
fun()
副本。从 main.r 中删除来源 fun.r 的行(不需要,因为它已经来源)
来源main.r
你会遇到断点。
要记住的重要一点是,函数必须已经存在才能在其上设置断点,并且 source
将具有断点的副本替换为没有断点的新副本一个断点。