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

Reply via email to