# 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)