[ESS] Debugging in R

Kasper Daniel Hansen kaha at biostat.ku.dk
Sat Jun 25 01:29:11 CEST 2005

On Fri, 24 Jun 2005, Ross Boylan wrote:

> On Fri, 2005-06-24 at 21:41 +0200, Kasper Daniel Hansen wrote:
> ...
> > 
> > I think that what Martin observed is that some ESS functionality hangs. 
> > Eg. ESS has tab completion for the help function, and that does not work 
> > in a recover session. But I think that what you are describing is 
> > something different - that everything hangs? 
> Correct.
> > So let me clarify: when I do 
> > options(error = recover) it works exactly as under the console - but I 
> > might have problems with some extended ESS functionality.
> > 
> > Your message seems to indicate that it worked recently. I am using 
> > Emacs under Mac Os Tiger with ESS 52.8 (the newest).
> > 
> > I am not sure I can help further - I am quite mystified if using 
> > options(error = recover) crashes the Emacs session...
> > 
> I've narrowed the problem down.  I did
> foo <- function() stop("")
> options(error=recover)
> foo()
> under ESS and everything worked fine.  However, when I put the call
> foo() in a file and did C-c C-l, everything hung.  It is not using any
> CPU.
> So I guess the standard input is redirected to the file, and gets stuck.
> Is there a way around that?

Ahh you. Well in that case I get exactly the same results like you - I 
guess the interactivity screws up (which is kind of natural). You 
shoudl be able to regain control of Emacs by using C-g, but that will not 
give you the results you want. You can get what you want by doing
instead of C-c C-l. What I sually do is having the script open in a 
separate buffer and then use 
  C-c C-n to step through it a line at a time
  C-c C-f to evaulate a function
  C-c C-b to dump the whole buffer.

In the last case it will hang at the error like it does with C-c C-l but 
by pressing C-g I can regain control and when I switch to the *R* buffer I 
see the recoveer prompt waiting for me.

I guess I am simply using another type of workflow, I never use C-c C-l 
(but now someone will tell me it is the best thing since sliced bread :)


More information about the ESS-help mailing list