Peter Dalgaard BSA
20 Feb 2001 21:09:21 +0100
Paul Gilbert <firstname.lastname@example.org> writes:
> I've managed to trap the following segfault with xxgdb and gctorture() set. The
> segfault seems to move around if gctorture() is not set, but has now occurred twice
> in the same spot with it set. xxgdb gives the message
> Program received signal SIGSEGV, Segmentation fault.
> 0x71244 in RunGenCollect (size_needed=2) at memory.c:1027
> and the source listing points to FORWARD_CHILDREN(s); in the following section from
> #ifndef EXPEL_OLD_TO_NEW
> /* scan nodes in uncollected old generations with old-to-new pointers */
> for (gen = num_old_gens_to_collect; gen < NUM_OLD_GENERATIONS; gen++)
> for (i = 0; i < NUM_NODE_CLASSES; i++)
> for (s = NEXT_NODE(R_GenHeap[i].OldToNew[gen]);
> s != R_GenHeap[i].OldToNew[gen];
> s = NEXT_NODE(s))
This just shows that something corrupted the memory handling. The
actual bug is probably somewhat prior to this. If you do a "bt"
(backtrace) and go "up" a couple of times, you might find a spot where
someone forgot to PROTECT() a newly created R object.
> P.S. If someone can quickly tell me the trick to make cut and paste work with xxgdb
> in Solaris I would appreciate it. (I realize I should probably read the manual, but
> if it is simple please let me know.)
I gave up on xxgdb long ago because I thought it was enough to have to
deal with bugs in our own programs! However, it would seem that the
ordinary mousing techniques works as usual on Linux. Command-line
recall appears to be shot, however.
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (email@example.com) FAX: (+45) 35327907
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: firstname.lastname@example.org