代码不会在 R 中外部函数的断点处停止

问题描述 投票:0回答:1

阔别几年后我又回到了 R。我想使用在主脚本中按预期工作的断点,但当断点位于外部函数中时则不行。

我创建了这段简单的代码只是为了形象化这个问题。

main.R 我有这些行:

source("adding_numbers.R")

total_number <- adding_numbers(1, 2)
total_number2 <- adding_numbers(3, 4)
total_number3 <- adding_numbers(5, 6)

print(c(total_number,total_number2, total_number3))

adding_numbers 函数位于文件adding_numbers.R 中并包含:

adding_numbers <- function (number1, number2)
{
  added_number <- number1 + number2
  z <- added_number + number1
  return(added_number)
}

这篇文章中他们确实提到了获取所有文件或使用debug()。

当我单击按钮源时,它确实以调试模式发送控制台,并且当断点位于 main.R 中时工作正常,但是当断点位于adding_numbers.R 中时,它不会在断点处停止。 使用 debug(adding_numbers) 确实可以使代码自动进入函数,但同样不会在特定断点处停止。

我在这里缺少什么?

非常感谢。

r debugging breakpoints
1个回答
1
投票

我认为从

source()
调用
main.R
是问题所在。 这将用函数的新副本替换具有断点设置的
adding_numbers
的定义,并且 RStudio 在调用之前没有机会重新设置断点。

所以你应该先调用

source("adding_numbers.R")
,然后设置断点,然后执行你的主要代码。

或者,您可以使用基本函数

setBreakpoint("adding_numbers.R#3")
在该文件的第 3 行设置断点。 这需要在您获取文件之后、调用该函数之前发生。

© www.soinside.com 2019 - 2024. All rights reserved.