[R] understanding dump.frames; typo;

From: Matt Shotwell <Matt.Shotwell_at_vanderbilt.edu>
Date: Tue, 12 Apr 2011 11:29:37 -0500


When a function I have stop()s, I'd like it to return its evaluation frame, but not halt execution of the script. In experimenting with this, I became confused with dump.frames. From ?dump.frames:

      If ‘dump.frames’ is installed as the error handler, execution will
      continue even in non-interactive sessions.  See the examples for
      how to dump and then quit.

Suppose I save the following script to "dump-test.R":

options(error=dump.frames)
cat("interactive:", interactive(), "\n") f <- function() {

     stop("dump-test-error")
     cat("execution continues within f\n")
}
f()
cat("execution continues outside of f\n") if(exists("last.dump"))

     cat("last.dump is available\n")

 From an interactive R prompt, execution is halted at 'stop':

R> source('dump-test.R')
interactive: TRUE
Error in f() : dump-test-error

Using Rscript, execution continues depending on whether you source() the file with the -e flag, or pass the file as an argument.

matt_at_pal ~$ Rscript dump-test.R
interactive: FALSE
Error in f() : dump-test-error
execution continues outside of f
last.dump is available

matt_at_pal ~$ Rscript -e "source('dump-test.R')" interactive: FALSE
Error in f() : dump-test-error
Calls: source -> eval.with.vis -> eval.with.vis -> f

It seems that interactiveness (as tested by interactive()) doesn't come into play, yet execution does *not* always continue. What am I missing? Alternative solutions are also welcome.

-Matt

P.S. There is a typo in the help file: "The dumped object contain the call stack..." should read "The dumped object contains the call stack...".

> sessionInfo()

R version 2.13.0 alpha (2011-03-18 r54865) Platform: x86_64-unknown-linux-gnu (64-bit)

locale:

  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
  [5] LC_MONETARY=C              LC_MESSAGES=en_US.UTF-8
  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
  [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats graphics grDevices utils datasets methods base

loaded via a namespace (and not attached): [1] tools_2.13.0

-- 
Matthew S Shotwell   Assistant Professor           School of Medicine
                      Department of Biostatistics   Vanderbilt University

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Tue 12 Apr 2011 - 16:31:24 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 12 Apr 2011 - 17:40:29 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive