On Monday 13 October 2008 13:11:45 Mark Glines wrote: > This GDB was configured as "x86_64-pc-linux-gnu"... > (gdb) run t/op/bitwise_27.pir > Starting program: /work/parrot-dev/parrot-trunk/parrot > t/op/bitwise_27.pir > [Thread debugging using libthread_db enabled] > warning: Lowest section in /usr/lib64/libicudata.so.38 is .hash at > 0000000000000190 > [New Thread 0x7f59a97b7710 (LWP 32001)] > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x7f59a97b7710 (LWP 32001)] > 0x00007f59a910bb4b in pobject_lives (interp=0xc59080, > obj=0x7f59a908a1ab) > at src/gc/dod.c:206 > 206 PObj_live_SET(obj); > (gdb) print obj > $1 = (PObj *) 0x7fa8e10631ab > (gdb) print *obj > $2 = {cache = {_b = {_bufstart = 0x458b481c7ec08548, > _buflen = 39204292909025512}, _ptrs = {_struct_val = > 0x458b481c7ec08548, > _pmc_val = 0x8b4818c08348e8}, _i = {_int_val = > 5011178297602639176, > _int_val2 = 39204292909025512}, _num_val = 1.0554090610765521e+27, > _string_val = 0x458b481c7ec08548}, flags = 16741440331238654280} > (gdb) bt > #0 0x00007f59a910bb4b in pobject_lives (interp=0xc59080, > obj=0x7f59a908a1ab) > at src/gc/dod.c:206 > #1 0x00007f59a92c75b9 in Parrot_CPointer_mark (interp=0xc59080, > pmc=0xdb3de8) > at ./src/pmc/cpointer.pmc:97
That's pretty clearly not a PMC. Can you use the breakpoint technique to figure out 1) What creates this CPointer PMC and 2) What's setting an invalid pointer-to-a-PMC here? http://www.perlfoundation.org/parrot/index.cgi?fixing_gc_bugs -- c