On Sat, 19 Apr 2003, Yukihiro Matsumoto wrote:

> means rb_gc_mark() was called with non Ruby object pointer, which
> should not happen.
> 
> |#5  0x404776fa in rb_gc_mark (ptr=3221202272) at gc.c:513
> This is a problem (ptr=3221202272=0xbfffa560), and line rb_gc_mark()
> is called from
> |#13 0x4047834b in rb_gc () at gc.c:1240

well, indirectly from... at the very least I'm not using neither
rb_register_address() nor rb_global_variable().

Giving you the intermediary backtrace from frame 5 to frame 13:

#5  0x404776fa in rb_gc_mark (ptr=3221202272) at gc.c:513
#6  0x4047753d in rb_gc_mark (ptr=135359908) at gc.c:786
#7  0x40476de2 in mark_entry (key=4849, value=135359908) at gc.c:552
#8  0x404bf466 in st_foreach (table=0x8265e68, func=0x40476dc4
<mark_entry>, 
    arg=0) at st.c:495
#9  0x40476e18 in rb_mark_tbl (tbl=0x8265e68) at gc.c:561
#10 0x404775ab in rb_gc_mark (ptr=135359928) at gc.c:809
#11 0x40476d6d in mark_locations_array (x=0xbfff9e58, n=3412) at gc.c:525
#12 0x40476dbd in rb_gc_mark_locations (start=0xbfffd3a4, end=0xbfff9e58)
    at gc.c:544
#13 0x4047834b in rb_gc () at gc.c:1240

I gather that this value was found in a hashtable. However further
investigation shows me that this is the pointer of a table of VALUEs
called "argv" that is on the stack and that I certainly have not added to
any hashtable at all...

WOOPS. I had made a typo, writing rb_funcall() instead of rb_funcall2().
(and since all I was getting _yet_ were NameErrors, I couldn't otherwise
notice.)

This closes this bug, which is unfortunately not the same bug as I've had
in my other extensions. I wish I could fix that other one.

Thanks.

________________________________________________________________
Mathieu Bouchard                       http://artengine.ca/matju