[Rd] enabling core dumps

pleydell at supagro.inra.fr pleydell at supagro.inra.fr
Fri Sep 4 18:48:06 CEST 2009


> usually what happens is (# meant to be a comment char)
>
>  % R -d gdb -f test.R
>  gdb> run
>  ...segfault happens, breaks into gdb
>  gdb> bt # print the backtrace
>  gdb> up # move up the stack, to get to 'your' frame
>  gdb> l # show source listing, use -O0 compiler flag, see gdb> help dir
>  gdb> print some_suspect_variable
>  gdb> call Rf_PrintValue(some_suspect_sexp)
>  gdb> break suspect_function
>  gdb> run # restart script, but break at suspect_function
>
> and so on, i.e., you've got all the info you need. A neat trick is to
> leave gdb running, repair and R CMD SHLIB your C code, return to gdb and
>
>  gdb> run
>
> to restart the same script but using the new shared lib (possibly
> preserving breakpoints and other debugging info you'd used in previous
> sessions).
>
> I'm a heavy emacs user but find it easier to stick with gdb from the
> shell -- one less layer to get in the way, when I'm confused enough as
> it is.

Wow! Thanks for the detailed reply, your approach makes perfect sense...

... especially given that my core file was for some unknown reason 0 
bytes which
gdb didn't find too funny.

cheers
David



More information about the R-devel mailing list