[perl #60206] [BUG] [MMD] Segfault in Lua exception handler
François PERRAD via RT
bugs-parrot-track at netlabs.develooper.com
Fri Dec 12 13:52:29 UTC 2008
The following back trace shows that throwing an exception from C
dosen't work.
The addition (true + 42) is handled in luaany.pmc by
MULTI PMC* add(DEFAULT value, PMC *dest)
which performs a call :
Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_ILL_INHERIT,
"attempt to perform arithmetic on a %Ss value", SELF.name());
... and segfault
Program received signal SIGSEGV, Segmentation fault.
0x686f9081 in clone_key_arg (interp=0x3f4150, st=0x22d8ac)
at src/inter_call.c:972
972 if (key->vtable->base_type != enum_class_Key)
(gdb) bt
#0 0x686f9081 in clone_key_arg (interp=0x3f4150, st=0x22d8ac)
at src/inter_call.c:972
#1 0x686fa006 in Parrot_convert_arg (interp=0x3f4150, st=0x22d8ac)
at src/inter_call.c:1585
#2 0x686f9bd3 in Parrot_process_args (interp=0x3f4150, st=0x22d8ac,
param_or_result=PARROT_PASS_PARAMS) at src/inter_call.c:1457
#3 0x686fa194 in parrot_pass_args (interp=0x3f4150, src_ctx=0xdd3f90,
dest_ctx=0x10868f0, src_indexes=0xa5326c, dest_indexes=0x22d994,
param_or_result=PARROT_PASS_PARAMS) at src/inter_call.c:1651
#4 0x70403104 in Parrot_Lua_nci_traceback (interp=0x3f4150, pmc=0x9c5ee8)
at
C:/fperrad/Parrot/trunk/tools/build/../../lib/Parrot/Pmc2c/PCCMETHOD.pm:4
48
#5 0x68870843 in Parrot_NCI_invoke (interp=0x3f4150, pmc=0x9c5ee8,
next=0xa53294) at src/pmc/nci.pmc:321
#6 0x6869f450 in Parrot_callmethodcc_p_sc (cur_opcode=0xa53288,
interp=0x3f4150) at src/ops/object.ops:81
#7 0x6873a705 in runops_slow_core (interp=0x3f4150, pc=0xa53288)
at src/runops_cores.c:222
#8 0x686fe777 in runops_int (interp=0x3f4150, offset=1659)
at src/interpreter.c:938
#9 0x686fef8c in runops (interp=0x3f4150, offs=1659) at src/inter_run.c:103
#10 0x686ff217 in runops_args (interp=0x3f4150, sub=0x9aab48, obj=0x9a4588,
meth_unused=0x0, sig=0x689ea410 "vP", ap=0x22db38 "+\235\232")
at src/inter_run.c:240
#11 0x686ff32d in Parrot_runops_fromc_args (interp=0x3f4150, sub=0x9aab48,
sig=0x689ea410 "vP") at src/inter_run.c:305
#12 0x686e8d71 in Parrot_ex_throw_from_c (interp=0x3f4150,
exception=0x9a9dc8)
at src/exceptions.c:311
#13 0x686e8e21 in Parrot_ex_throw_from_c_args () at src/exceptions.c:378
#14 0x70404fdd in Parrot_LuaAny_multi_add_DEFAULT_PMC (interp=0x3f4150,
pmc=0x9aa1a8, value=0x9a9ec8, dest=0x0) at luaany.pmc:340
More information about the parrot-dev
mailing list