Unfortunately, I do not know what this means, so I haven't been able to extract a simple test case. FWIW, this didn't happen in r11470, though r11470 has a different problem relating to error handling -- signalling an error corrupts a Sub PMC, trashing its vtable slot.
Any and all hints gratefully accepted. -- Bob Rogers http://rgrjr.dyndns.org/ ------------------------------------------------------------------------ (gdb) r toy-lisp.pbc The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /usr/src/parrot/parrot toy-lisp.pbc [New Thread 16384 (LWP 14491)] [New Thread 32769 (LWP 14492)] [New Thread 16386 (LWP 14493)] [New Thread 32771 (LWP 14494)] * x Read: X parrot: src/inter_call.c:899: process_args: Assertion `idx >= 0' failed. Program received signal SIGABRT, Aborted. [Switching to Thread 16384 (LWP 14491)] 0x404b5b71 in kill () from /lib/i686/libc.so.6 (gdb) bt #0 0x404b5b71 in kill () from /lib/i686/libc.so.6 #1 0x40315cf1 in pthread_kill () from /lib/i686/libpthread.so.0 #2 0x4031600b in raise () from /lib/i686/libpthread.so.0 #3 0x404b5904 in raise () from /lib/i686/libc.so.6 #4 0x404b6e8c in abort () from /lib/i686/libc.so.6 #5 0x404aee84 in __assert_fail () from /lib/i686/libc.so.6 #6 0x4009164d in process_args (interpreter=0x8051430, st=0xbffff210, action=0x4023dbf1 "params", err_check=1) at src/inter_call.c:899 #7 0x40091eec in parrot_pass_args_to_result (interpreter=0x8051430, sig=0x4025b849 "PS", dest=0x402a93a4, old_ctxp=0x80e5300, ap=0xbffff2f8 "") at src/inter_call.c:1190 #8 0x401e4b20 in pass_exception_args (interpreter=0x8051430, sig=0x4025b849 "PS", dest=0x402a93a4, old_ctx=0x80e5300) at exception_handler.pmc:33 #9 0x401e4d38 in Parrot_Exception_Handler_invoke (interpreter=0x8051430, pmc=0x82d70a0, ex=0x82d64d0) at exception_handler.pmc:105 #10 0x4008d740 in throw_exception (interpreter=0x8051430, exception=0x82d64d0, dest=0x402a84bc) at src/exceptions.c:412 #11 0x4010df87 in Parrot_throw_p (cur_opcode=0x402a84b4, interpreter=0x8051430) at core.ops:706 #12 0x400a16f5 in runops_slow_core (interpreter=0x8051430, pc=0x402a84b4) at src/runops_cores.c:157 #13 0x4008ef8d in runops_int (interpreter=0x8051430, offset=3788) at src/interpreter.c:775 #14 0x4009364c in runops (interpreter=0x8051430, offs=3788) at src/inter_run.c:81 #15 0x40093863 in runops_args (interpreter=0x8051430, sub=0x82379e8, obj=0x808d750, meth=0x0, sig=0x402443c2 "vP", ap=0xbffff4ac "¸y#\b\030õÿ¿\220Ò") at src/inter_run.c:180 #16 0x40093967 in Parrot_runops_fromc_args (interpreter=0x8051430, sub=0x82379e8, sig=0x402443c2 "vP") at src/inter_run.c:274 #17 0x400dcc8c in Parrot_runcode (interpreter=0x8051430, argc=1, argv=0xbffff568) at src/embed.c:801 #18 0x0804a8d9 in main (argc=1, argv=0xbffff568) at compilers/imcc/main.c:655 (gdb) f 6 #6 0x4009164d in process_args (interpreter=0x8051430, st=0xbffff210, action=0x4023dbf1 "params", err_check=1) at src/inter_call.c:899 (gdb) p idx $2 = -1 (gdb) p st->dest.i $3 = 1 (gdb) p st->dest.sig $4 = 1 (gdb) p state $5 = 0 (gdb) p st->named_done $6 = 134550576 (gdb) p st->first_named $7 = -1 (gdb) p st->name $8 = (STRING *) 0x0 (gdb) p st->dest.u.op.pc $9 = (opcode_t *) 0x402a93ac (gdb)