This failure is actually a bus error. You can generate it with:'

../../parrot tcl.pbc -e 'proc a {} {global q;puts $q};a'

Here's the gdb backtrace:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x000001b4
0x0106fc60 in Parrot_dec_p (cur_opcode=0x281b79c, interpreter=0x2400210) at 
src/ops/
math.ops:353
353       $1->vtable->decrement(interpreter, $1);
(gdb) bt
#0  0x0106fc60 in Parrot_dec_p (cur_opcode=0x281b79c, interpreter=0x2400210) at 
src/
ops/math.ops:353
#1  0x0101a83c in runops_slow_core (interpreter=0x2400210, pc=0x281b79c) at src/
runops_cores.c:157
#2  0x0100be78 in runops_int (interpreter=0x2400210, offset=4983) at 
src/interpreter.c:
763
#3  0x0100f358 in runops (interpreter=0x2400210, offs=8012288) at 
src/inter_run.c:81
#4  0x0100f558 in runops_args (interpreter=0x2400210, sub=0x2410e50, 
obj=0x281c1d0, 
meth=0x1, sig=0x1185034 "vP", ap=0xbffff6a4 "") at src/inter_run.c:180
#5  0x0100f678 in Parrot_runops_fromc_args (interpreter=0x2400210, 
sub=0x7a4200, 
sig=0x1185034 "vP") at src/inter_run.c:274
#6  0x00003f5c in main (argc=4, argv=0x0) at compilers/imcc/main.c:655

last few lines of the -t1 parrot trace:

 18187 throw P1         - P1=Exception=PMC(0x425ff8)
   213 set I0, P1[9]    - I0=2, P1=Exception=PMC(0x425ff8), 
   217 ne I0, 2, 14     - I0=1, , 
   231 dec P0   - P0=Bus error

Regards.

Reply via email to