--- Leopold Toetsch <[EMAIL PROTECTED]> wrote: > Joshua Gatcomb wrote: > > I am not sure where to go from here. Any > suggestions? > > Ok, here is a sample debugging session: > > $ cat hello.pasm > print "hello\n" > end > > $ parrot hello.pasm > hello > > $ gdb parrot > ... > (gdb) b new_pmc_header > (gdb) r hello.pasm > Breakpoint 1, new_pmc_header (interpreter=0x82e5668, > flags=1024) > at src/headers.c:244 > 244 pool = flags & PObj_constant_FLAG ? > (gdb) n > (gdb) n > 249 if (flags & PObj_is_PMC_EXT_FLAG) { > (gdb) p *pool > ... > (gdb) p *pool->last_Arena > ... > (gdb) n > 251 > *((Dead_PObj*)pmc)->arena_dod_flag_ptr |= > (gdb) n > 256 pmc->pmc_ext = > new_pmc_ext(interpreter); > (gdb) > > When it passes the first few times without problems > then you could disable > the breakpoint:
I assume you wanted this done with the ARENA_DOD_FLAGS enabled. With them enabled it blows up (not passing) at the last step you had me do: (gdb) b new_pmc_header Breakpoint 1 at 0x419ed4: file src/headers.c, line 244. (gdb) r hello.pasm Starting program: /perl/parrot/parrot.exe hello.pasm Breakpoint 1, new_pmc_header (interpreter=0x100d1d20, flags=1024) at src/headers.c:244 244 pool = flags & PObj_constant_FLAG ? (gdb) n 247 pmc = pool->get_free_object(interpreter, pool); (gdb) n 249 if (flags & PObj_is_PMC_EXT_FLAG) { (gdb) p *pool $1 = {last_Arena = 0x10200000, object_size = 32, objects_per_alloc = 16382, total_objects = 2048, num_free_objects = 2047, skip = 0, replenish_level = 614, free_list = 0x10210000, align_1 = 0, add_free_object = 0x4700f0 <add_free_object>, get_free_object = 0x470110 <get_free_object>, alloc_objects = 0x470580 <alloc_objects>, more_objects = 0x470050 <more_traceable_objects>, mem_pool = 0x0, start_arena_memory = 270532672, end_arena_memory = 271056896, name = 0x41a6cd "pmc"} (gdb) p *pool->last_Arena $2 = {used = 2048, total_objects = 16382, object_size = 32, dod_flags = 0x100fc668, pool = 0x100f2778, live_objects = 0, prev = 0x0, next = 0x0, start_objects = 0x10200040} (gdb) n 251 *((Dead_PObj*)pmc)->arena_dod_flag_ptr |= (gdb) n Program received signal SIGSEGV, Segmentation fault. 0x00419f6c in new_pmc_header (interpreter=0x100d1d20, flags=1024) at src/headers.c:251 251 *((Dead_PObj*)pmc)->arena_dod_flag_ptr |= I assume this is blowing up earlier than you expected? Cheers Joshua Gatcomb a.k.a. Limbic~Region __________________________________ Do you Yahoo!? Win a $20,000 Career Makeover at Yahoo! HotJobs http://hotjobs.sweepstakes.yahoo.com/careermakeover