--- 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 

Reply via email to