[R] segfault debugging
Duncan Murdoch
murdoch.duncan at gmail.com
Fri Nov 30 19:54:33 CET 2012
On 30/11/2012 12:02 PM, Donatella Quagli wrote:
> Hello everybody,
>
> I have written a script with two inline cfunctions. The script crashes from time to time with:
> *** caught segfault ***
> address 0x10, cause 'memory not mapped'
>
> The crashs happen within R code after the cfunctions were executed. Nevertheless I think
> that the pointers in my cfunctions are not used correctly.
>
> I tried to find some examples for debugging tools. I found something like "R -d gdb". But I
> could not find an example how to use it with #!/usr/bin/Rscript. And I cannot source the script
> within a running R session because I must run it with some args.
>
> Can anybody tell me as a non nerd step by step what I can do to locate the problem? Can
> you recommend tools? If so how are they used with Rscript?
This isn't easy, but what I would do is add something to your script to
get it to pause (or to wait for some file to be created, or some other
signal), then figure out the process number, and tell gdb to connect to
it after it has already started.
The ps command will list all the running processes, for some definition
of "all". Then
gdb --pid=PID
will connect to the process with id PID. I believe it will interrupt
the process at that point, but you can restart it, send the signal to it
to get out of its loop), and hopefully see the segfault in action.
Duncan Murdoch
More information about the R-help
mailing list