[ESS] Running R within ESS using gdb

Douglas Bates bates at stat.wisc.edu
Fri Feb 26 18:20:14 CET 2010


I am running Emacs 23.1.50.1 and ESS 5.7.1 on an Ubuntu 9.10 system.
Both were installed from Ubuntu packages.  This emacs is still called
emacs-snapshot under Ubuntu.

In the past I was able to combine ESS and gdb  for debugging compiled
code within R according to the following sequence of steps

1. Start R using ESS
2. Attach any packages whose code I want to debug to this instance of R
3. M-x gdb location_of_R_executable
4. Determine the process number for the R process (M-! pgrep R)
5. Attach gdb to the R process
6. Set a breakpoint at the place where I want to start the debugger
7. Send the 0 signal from gdb

In the past this would send control back to the ESS buffer where I
could type an R expression that would invoke the code I wanted to
debug.  gdb would catch the breakpoint and I would continue from
there.

Apparently the emacs interface to gdb (called "gud") has been improved
to handle multiple threads etc.  The only problem for me now is that I
can't get past step 5.  I can't decide how to set a breakpoint in gdb
because I don't get a gdb prompt.  Also it looks as if gdb has taken
over control of the I/O from the ESS buffer.  The ESS buffer indicates
the there is no longer an R process attached.

Has anyone successfully combined R under ESS and gdb under gud within
a recent emacs?

Alternatively, can anyone give me a recipe for starting gdb on R
within emacs.  I would prefer not to need to use the vanilla interface
to gdb.  Would it be as simple as setting the necessary environment
variable (i.e. R_HOME_DIR -- any others?) in the emacs process then
starting gdb?



More information about the ESS-help mailing list