The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

Advanced Debugging

This section introduces the browse argument of flow_run() and the functions flow_debug() and flow_debugonce()

browse

flow_run() runs a call and displays the logical path that was taken, but what if we’d like to walk through the code step by step, as we would by inserting a browser() call in our function’s body or calling debug() or debugonce() on our function ?

In these cases we can use the browse argument, set it to TRUE and you’ll be able to browse through the function as it’s run. And refresh the diagram by typing d or the equivalent flow_draw()

flow_debug()

flow_run is convenient to inspect the logic of a function that we call directly, sometimes we might want to inspect a call that’s part of another function’s body.

In this situation we can use flow_debug(). These work a lot like debug() when using browse = TRUE.

library(flow)

flow_debug(factorial)
#> Tracing function "factorial" in package "base"
factorial5 <- function(){
  x <- 5L
  factorial(x)
}
factorial5()
#> [1] 120

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.