From: Mathieu Bouchard Date: 2003-04-19T15:37:42+09:00 Subject: Re: problem with rb_rescue2() ? 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 , 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