This code:

     set I0, 0
TOP: bsr FOO
     inc I0
     lt I0, 974, TOP
     print "Done\n"
     end

FOO: new P0, PerlString
     set P0, "foo"
     pushp
     ret
     end

 causes a segfault, while the same program with 974 changed to 973 (or
 smaller) runs fine.

 Running parrot under gdb shows that it's dying somewhere in mark_used
 - I've attached the stack trace at the bottom of this message.

 Simon

----------

 Program received signal SIGSEGV, Segmentation fault.
 0x08091f72 in mark_used ()

 #0  0x08091f72 in mark_used ()
 #1  0x080920c0 in trace_active_PMCs ()
 #2  0x08092559 in Parrot_do_dod_run ()
 #3  0x080925a5 in alloc_more_string_headers ()
 #4  0x08092715 in new_string_header ()
 #5  0x0808df93 in Parrot_string_make ()
 #6  0x08099ae7 in Parrot_PerlString_init ()
 #7  0x0808fae9 in pmc_new ()
 #8  0x0805871b in Parrot_new_p_ic ()
 #9  0x0808f443 in runops_fast_core ()
 #10 0x0804928e in runops_generic ()
 #11 0x08049b45 in runops ()
 #12 0x080938e6 in Parrot_runcode ()
 #13 0x080a01d2 in main ()
 #14 0x40087627 in __libc_start_main (main=0x80a0140 <main>, argc=2,
    ubp_av=0xbfffe914, init=0x8048c48 <_init>, fini=0x80a0460 <_fini>,
    rtld_fini=0x4000dcc4 <_dl_fini>, stack_end=0xbfffe90c)
    at ../sysdeps/generic/libc-start.c:129

Reply via email to