Joshua Gatcomb <[EMAIL PROTECTED]> wrote: > --- Leopold Toetsch <[EMAIL PROTECTED]> wrote: >> (gdb) bt >> (gdb) p pmc >> /gdb) p *((Dead_PObj*)pmc) >> would be good. > Program received signal SIGSEGV, Segmentation fault.
> #5 0x0053fb75 in Parrot_ParrotInterpreter_class_init Early in program startup. > (gdb) p *((Dead_PObj*)pmc) > $2 = {free_list_ptr = 0x1810000, > object_buflen_dont_use = 0, object_flags_dont_use = 0, > arena_dod_flag_ptr = 0x0, flag_shift = 0} ^^^ Somethings is *really* wrong here. I don't know exactly what's happening here, but I assume that the memalign function is buggy. To nail that further down: 1) Determine the used memalign function: $ grep memalign lib/Parrot/Config.pm 'memalign' => 'memalign', It could be 'posix_memalign' too. 2) Copy either config/auto/memalign/ test_c.in or test_c2.in somewhere as e.g. align.c 3) Replace #include <${malloc_header}> with <malloc.h> or whatever is the correct header file. see e.g. "man memalign" 4) compile and run it: $ cc -Wall -g align.c -o align && ./align ok 5) Now the easy part: Vary the alignment of the function and the test, if actually the lo bits are zero. BTW Kind of this "stress" test is very welcome for the config system. Google around, if you can find signs of a broken memalign function on your system. > Cheers leo