On Mon, Mar 03, 2003 at 10:38:59AM +0900, nobu.nokada / softhome.net wrote:
> > I finally found a way to reproduce the bug with some predictability
> > (it only happens when Ruby is compiled with gcc 3.2; could it be that the
> > compiler is broken?).
> > 
> > If it is a bug, it is a new one.
> > 
> > Converting /tmp/tst1.html
> > ./dict.rb:316: [BUG] gc_sweep(): unknown data type 28
> > ruby 1.6.8 (2003-02-28) [i386-linux]
> > 
> > This time I got a core dump with all the info:
> > #0  0x40094c01 in kill () from /lib/libc.so.6
> > #1  0x40094a12 in raise () from /lib/libc.so.6
> > #2  0x40095c3e in abort () from /lib/libc.so.6
> > #3  0x080ad77a in rb_bug (fmt=0x80b1300 "gc_sweep(): unknown data type
> > %d") at error.c:180
> > #4  0x08066fbf in obj_free (obj=1075318916) at gc.c:949
> 
> What's this obj's content?  Try `rp obj' with attached
> ".gdbinit".

#3  0x080ad77a in rb_bug (fmt=0x80b1300 "gc_sweep(): unknown data type %d") at error.c:180
180         abort();
(gdb)
#4  0x08066fbf in obj_free (obj=1075318916) at gc.c:949
949             rb_bug("gc_sweep(): unknown data type %d",
(gdb) rp obj
Unknown
(gdb) print *(struct RBasic *)obj
$1 = {flags = 1075318812, klass = 8}
(gdb) print ((struct RBasic *)obj)->flags & 0x3f
$2 = 28

Bug in GCC 3.2?


[sorry for taking so long to reply; the MTA of my site was down]
-- 
 _           _                             
| |__   __ _| |_ ___ _ __ ___   __ _ _ __  
| '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \ 
| |_) | (_| | |_\__ \ | | | | | (_| | | | |
|_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_|
	Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com

...[Linux's] capacity to talk via any medium except smoke signals.
	-- Dr. Greg Wettstein, Roger Maris Cancer Center