# New Ticket Created by Bob Rogers
# Please include the string: [perl #58050]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58050 >
It looks like "subclass" is allocating an integer for the new PMC
class, but failing to initialize interp->vtables properly (or
something). It does not help to mark the ":setup" sub as ":load" in
addition to ":immediate" (but logically that ought to be necessary?).
-- Bob Rogers
http://rgrjr.dyndns.org/
P.S. "testr" just compiles to PBC and runs in an separate parrot image.
(I had forgotten.)
------------------------------------------------------------------------
(gdb) r t/compilers/imcc/syn/hll_2.pbc
Starting program: /usr/src/parrot/parrot t/compilers/imcc/syn/hll_2.pbc
Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1227610416 (LWP 19242)]
warning: Lowest section in /usr/lib/libicudata.so.34 is .hash at 000000b4
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1227610416 (LWP 19242)]
0xb7d016c3 in pmc_new (interp=0x8050040, base_type=79) at src/pmc.c:87
(gdb) bt
#0 0xb7d016c3 in pmc_new (interp=0x8050040, base_type=79) at src/pmc.c:87
#1 0xb7cd15b3 in Parrot_process_args (interp=0x8050040, st=0xbfb03880,
param_or_result=PARROT_PASS_PARAMS) at src/inter_call.c:1370
#2 0xb7cd1a7e in parrot_pass_args (interp=0x8050040, src_ctx=0x8223360,
dest_ctx=0x8224888, src_indexes=0xb7b851cc, dest_indexes=0xb7b85208,
param_or_result=PARROT_PASS_PARAMS) at src/inter_call.c:1536
#3 0xb7c5fdac in Parrot_get_params_pc (cur_opcode=0xb7b85208,
interp=0x8050040) at src/ops/core.ops:581
#4 0xb7d026cc in runops_slow_core (interp=0x8050040, pc=0xb7b85208) at
src/runops_cores.c:222
#5 0xb7cd5749 in runops_int (interp=0x8050040, offset=7) at
src/interpreter.c:933
#6 0xb7cd6023 in runops (interp=0x8050040, offs=7) at src/inter_run.c:101
#7 0xb7cd62d6 in runops_args (interp=0x8050040, sub=0x82154cc, obj=0x809ea18,
meth_unused=0x0, sig=0xb7f35fc7 "vP", ap=0xbfb03a9c
"\230S!\bØ:°¿`cþ·\b4\"\b\230S!\bÌT!\bô¯û·Ø:°¿Ò\020ñ·@") at src/inter_run.c:223
#8 0xb7cd640c in Parrot_runops_fromc_args (interp=0x8050040, sub=0x82154cc,
sig=0xb7f35fc7 "vP") at src/inter_run.c:295
#9 0xb7cbf4c7 in Parrot_runcode (interp=0x8050040, argc=1, argv=0xbfb03c08) at
src/embed.c:951
#10 0xb7f110d2 in imcc_run_pbc (interp=0x8050040, obj_file=0, output_file=0x0,
argc=1, argv=0xbfb03c08) at compilers/imcc/main.c:783
#11 0xb7f11b82 in imcc_run (interp=0x8050040, sourcefile=0xbfb04350
"t/compilers/imcc/syn/hll_2.pbc", argc=1, argv=0xbfb03c08) at
compilers/imcc/main.c:1071
#12 0x08048998 in main (argc=1, argv=0xbfb03c08) at src/main.c:61
(gdb) p interp
$1 = (Parrot_Interp) 0x8050040
(gdb) p interp->vtables
$2 = (VTABLE **) 0x80731d8
(gdb) p interp->vtables->[base_type]
A syntax error in expression, near `[base_type]'.
(gdb) p interp->vtables[base_type]
$3 = (VTABLE *) 0x0
(gdb)