[R] Mysterious seg fault.
Rolf Turner
r@turner @end|ng |rom @uck|@nd@@c@nz
Mon Aug 13 03:29:39 CEST 2018
On 13/08/18 12:03, Duncan Murdoch wrote:
<SNIP>
>> So I did:
>>
>> /usr/local/bin/valgrind R
>
> I believe on your system R is a script, so you can't run valgrind this
> way. It's just debugging bash, not R. You need to use
>
> R -d valgrind
>
> (though with your weird path problems, you might need a fully qualified
> /usr/local/bin/valgrind there).
>
> You run gdb the same way:
>
> R -d gdb
>
> and then give the command "r" to gdb to start R. It will give a report
> when you get the segfault. I don't know which report will be more
> informative.
<SNIP>
Thanks Duncan. I did as you said with valgrind and got output that is
probably more relevant. However it is still opaque to me. I have no
idea how to use it to track down the error that I am making in the code.
> xxx <- get.hgl(p3,2,yyy)
> ==20088== Invalid read of size 8
> ==20088== at 0x5116CD: Rf_allocVector3 (memory.c:2539)
> ==20088== by 0x4B40FF: Rf_allocVector (Rinlinedfuns.h:577)
> ==20088== by 0x4B40FF: do_missing (envir.c:2265)
> ==20088== by 0x4CA383: bcEval (eval.c:6801)
> ==20088== by 0x4D99EF: Rf_eval (eval.c:624)
> ==20088== by 0x4DB172: R_execClosure (eval.c:1773)
> ==20088== by 0x4D0E6E: bcEval (eval.c:6749)
> ==20088== by 0x4D99EF: Rf_eval (eval.c:624)
> ==20088== by 0x4DB172: R_execClosure (eval.c:1773)
> ==20088== by 0x4D0E6E: bcEval (eval.c:6749)
> ==20088== by 0x4D99EF: Rf_eval (eval.c:624)
> ==20088== by 0x4DB172: R_execClosure (eval.c:1773)
> ==20088== by 0x4D99A1: Rf_eval (eval.c:747)
> ==20088== Address 0x3fca86ccfb7de9cc is not stack'd, malloc'd or (recently) free'd
> ==20088==
>
> *** caught segfault ***
> address (nil), cause 'unknown'
> ==20088== Invalid read of size 8
> ==20088== at 0x511B23: Rf_allocVector3 (memory.c:2691)
> ==20088== by 0x49137A: Rf_allocVector (Rinlinedfuns.h:577)
> ==20088== by 0x49137A: deparse1WithCutoff (deparse.c:268)
> ==20088== by 0x492EAF: Rf_deparse1m (deparse.c:197)
> ==20088== by 0x4BA99C: R_GetTraceback (errors.c:1409)
> ==20088== by 0x5053CE: sigactionSegv (main.c:592)
> ==20088== by 0x6CA738F: ??? (in /lib/x86_64-linux-gnu/libpthread-2.23.so)
> ==20088== by 0x5116CC: Rf_allocVector3 (memory.c:2539)
> ==20088== Address 0x3fca86ccfb7de9cc is not stack'd, malloc'd or (recently) free'd
> ==20088==
> ==20088==
> ==20088== Process terminating with default action of signal 11 (SIGSEGV)
> ==20088== General Protection Fault
> ==20088== at 0x511B23: Rf_allocVector3 (memory.c:2691)
> ==20088== by 0x49137A: Rf_allocVector (Rinlinedfuns.h:577)
> ==20088== by 0x49137A: deparse1WithCutoff (deparse.c:268)
> ==20088== by 0x492EAF: Rf_deparse1m (deparse.c:197)
> ==20088== by 0x4BA99C: R_GetTraceback (errors.c:1409)
> ==20088== by 0x5053CE: sigactionSegv (main.c:592)
> ==20088== by 0x6CA738F: ??? (in /lib/x86_64-linux-gnu/libpthread-2.23.so)
> ==20088== by 0x5116CC: Rf_allocVector3 (memory.c:2539)
> ==20088==
> ==20088== HEAP SUMMARY:
> ==20088== in use at exit: 210,111,063 bytes in 57,981 blocks
> ==20088== total heap usage: 106,693 allocs, 48,712 frees, 349,208,345 bytes allocated
> ==20088==
> ==20088== LEAK SUMMARY:
> ==20088== definitely lost: 0 bytes in 0 blocks
> ==20088== indirectly lost: 0 bytes in 0 blocks
> ==20088== possibly lost: 0 bytes in 0 blocks
> ==20088== still reachable: 210,111,063 bytes in 57,981 blocks
> ==20088== of which reachable via heuristic:
> ==20088== newarray : 4,264 bytes in 1 blocks
> ==20088== suppressed: 0 bytes in 0 blocks
> ==20088== Rerun with --leak-check=full to see details of leaked memory
> ==20088==
> ==20088== For counts of detected and suppressed errors, rerun with: -v
> ==20088== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
> Segmentation fault (core dumped)
Doesn't mean a thing to me, I'm afraid. Does it mean anything to you?
I have not (yet) "rerun with: -v". I suspect that this would not help.
I guess I'll try to get gdb going next, and see if that provides more
lucid output.
cheers,
Rolf
--
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276
More information about the R-help
mailing list