Exit current browser (return one level)

r

Solution

I agree with Josh and would like to suggest these two alternatives to your current code:

1) `debugonce`: If we call `foo` your inner function, then `debugonce(foo)` will launch the debugger only the first time that `foo` is called, when `x==1`.

FUN <- function() {
  browser()
  foo <- function(x)return(x)
  debugonce(foo)
  lapply(1:10, foo)
}

2) `debug` and `undebug`. After you run `debug(foo)`, the debugger will be launched every time `foo` is called, and until you run `undebug(foo)`:

FUN <- function() {
  browser()
  foo <- function(x)return(x)
  debug(foo)
  lapply(1:10, foo)
}

When you want to stop debugging `foo`, type `undebug(foo)` before hitting `c` and it will take you back to the first level browser.

Problem

Sometimes you throw multiple `browser`s into a function to debug. I know you can exit the whole shebang with `Q` but what if you want to exit the second browser (see below's code) and return to the first level of browser? I've heard type `c` but that doesn't exit the second level `browser`. ``` FUN <- function() { browser() #first one lapply(1:10, function(x) { browser() #second one return(x) }) } FUN() ```

Original source