Tiene que llamar al debug(<functionName>)
para recorrer una función. La próxima vez que llame a la función, el denominado entorno de navegador se abrirá automáticamente y mostrará el contenido de su función. Realice un paso presionando Volver o con el comando n
(siguiente). Un solo paso es un bloque (generalmente una sola línea) que se listará antes de ejecutarse. Para ejecutar la función hasta su final, presione c
(continuar). Cuando está en el modo de navegador, puede usar ls()
, str()
, class()
, ... para inspeccionar los objetos. Su ejemplo es el siguiente:
> 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
La última llamada a undebug(<functionName>)
elimina el indicador de depuración de la función tal que se llevará a cabo normalmente la próxima vez que se llama.
No olvide leer las páginas de ayuda de '? Debug' y'? Browser' con mucho cuidado. –