Вы должны вызвать debug(<functionName>)
для выполнения функции. При следующем вызове функции автоматически открывается так называемая среда браузера и список содержимого вашей функции. Вы выполняете один шаг, нажимая Return или с помощью команды n
(далее). Один шаг - это один блок (обычно одна строка), который будет указан до его запуска. Чтобы запустить функцию до конца, нажмите c
(продолжить). Когда вы находитесь в режиме браузера, вы можете использовать ls()
, str()
, class()
, ... для проверки объектов. Ваш пример выглядит так:
> exampleSum <- function(x, y) {
+ x <- x+1
+ return(x+y)
+ }
> debug(exampleSum) # set debug flag
> exampleSum(1, 2) # run function in browser mode
debugging in: exampleSum(1, 2)
debug: {
x <- x + 1
return(x + y)
}
Browse[2]> n # next step
debug: x <- x + 1
Browse[2]> ls() # show objects
[1] "x" "y"
Browse[2]> x # show x
[1] 1
Browse[2]> c # run function to end
exiting from: exampleSum(1, 2)
[1] 4
> undebug(exampleSum) # remove debug flag
Последний вызов undebug(<functionName>)
удаляет флаг отладки из функции таким образом, что он будет запускаться нормально при следующем вызове.