Ticket #831 (closed bug: fixed)
segfault in clone_key_arg
Reported by: | coke | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | core | Version: | trunk |
Severity: | fatal | Keywords: | |
Cc: | Language: | tcl | |
Patch status: | Platform: |
Description
With partcl (r526) running against parrot (r40039), the expr.test spec test dies (very late in the process) with a segfault. Running under gdb, I have the following information about the segfault:
- occurs after the successful test, expr-32.2
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb6e616d0 (LWP 28524)] 0xb7c5630f in clone_key_arg (interp=0x804f040, st=0xbf94207c) at src/call/pcc.c:1196 1196 if (key->vtable->base_type != enum_class_Key) (gdb) bt #0 0xb7c5630f in clone_key_arg (interp=0x804f040, st=0xbf94207c) at src/call/pcc.c:1196 #1 0xb7c59956 in Parrot_convert_arg (interp=0x804f040, st=0xbf94207c) at src/call/pcc.c:1826 #2 0xb7c5a62d in Parrot_process_args (interp=0x804f040, st=0xbf94207c, param_or_result=PARROT_PASS_PARAMS) at src/call/pcc.c:1703 #3 0xb7c5aba8 in parrot_pass_args (interp=0x804f040, src_ctx=0x1107a288, dest_ctx=0x10bdbec0, src_indexes=0xb6daa4cc, dest_indexes=0xb6dbd340, param_or_result=PARROT_PASS_PARAMS) at src/call/pcc.c:1895 #4 0xb7c0282c in Parrot_get_params_pc (cur_opcode=0xb6dbd340, interp=0x804f040) at src/ops/core.ops:626 #5 0xb7c86250 in runops_slow_core (interp=0x804f040, pc=0xb6dbd340) at src/runcore/cores.c:462 #6 0xb7c84e4e in runops_int (interp=0x804f040, offset=24429) at src/runcore/main.c:987 #7 0xb7c5e495 in runops (interp=0x804f040, offs=3) at src/call/ops.c:119 #8 0xb7c5e8a4 in runops_args (interp=0x804f040, sub=0x80c14a8, obj=0x80b2760, meth_unused=0x0, sig=0xb7ea6f23 "vP", ap=0xbf9422ac "H\021\f\bø\"\224¿\200Éï·¸å\017\bH\021\f\b¨\024\f\bøûì·ø\"\224¿OÀç·@ð\004\b\002") at src/call/ops.c:269 #9 0xb7c5f756 in Parrot_runops_fromc_args (interp=0x804f040, sub=0x80c14a8, sig=0xb7ea6f23 "vP") at src/call/ops.c:338 #10 0xb7c3c0e7 in Parrot_runcode (interp=0x804f040, argc=2, argv=0xbf942428) at src/embed.c:1021 #11 0xb7e7c04f in imcc_run_pbc (interp=0x804f040, obj_file=0, output_file=0x0, argc=2, argv=0xbf942428) at compilers/imcc/main.c:801 #12 0xb7e7cc4c in imcc_run (interp=0x804f040, sourcefile=0xbf944410 "tcl.pbc", argc=2, argv=0xbf942428) at compilers/imcc/main.c:1092 #13 0x08048968 in main (argc=2, argv=0xbf942428) at src/main.c:60 (gdb) l 1191 PMC *key = UVal_pmc(st->val); 1192 1193 if (!key) 1194 return; 1195 1196 if (key->vtable->base_type != enum_class_Key) 1197 return; 1198 1199 for (; key; key = VTABLE_shift_pmc(interp, key)) { 1200 /* register keys have to be cloned */ (gdb) p key $1 = (PMC *) 0xc1 (gdb) p key->vtable Cannot access memory at address 0xcd
Change History
Note: See
TracTickets for help on using
tickets.