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) 

Reply via email to