Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[perl #39188] imcc dumps core when called with -o file.pasm.

0 views
Skip to first unread message

Andy Dougherty

unread,
May 23, 2006, 1:09:17 PM5/23/06
to bugs-bi...@rt.perl.org
# New Ticket Created by Andy Dougherty
# Please include the string: [perl #39188]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=39188 >


As of this morning's snapshot (Tue May 23 07:15:07 2006 UTC) The
following additional 90 tests dump core. They didn't do that last
week.

Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/compilers/imcc/imcpasm/cfg.t 3 768 3 3 100.00% 1-3
t/compilers/imcc/imcpasm/opt0.t 4 1024 6 4 66.67% 2 4-6
t/compilers/imcc/imcpasm/opt1.t 75 19200 78 75 96.15% 1-75
t/compilers/imcc/imcpasm/opt2.t 5 1280 6 5 83.33% 1-4 6
t/compilers/imcc/imcpasm/sub.t 2 512 2 2 100.00% 1-2
t/compilers/imcc/reg/alloc.t 1 256 3 1 33.33% 3

The core dumps all look similar: main.c is calling PackFile_fixup_subs
with an interpreter argument where interpreter->code is NULL. I don't
understand the code well enough to figure out where interpreter->code
was supposed to get set to anything non-NULL.

$ dbx parrot
(dbx) run -o cfg_1.pasm t/compilers/imcc/imcpasm/cfg_1.pir
Running: parrot -o cfg_1.pasm t/compilers/imcc/imcpasm/cfg_1.pir
(process id 8438)
t@1 (l@1) signal SEGV (no mapping at the fault address) in do_sub_pragmas at line 430 in file "packfile.c"
430 struct PackFile_FixupTable *ft = self->fixups;
(dbx) where
current thread: t@1
=>[1] do_sub_pragmas(interpreter = 0x30d370, self = (nil), action = 16, eval_pmc = (nil)), line 430 in "packfile.c"
[2] PackFile_fixup_subs(interpreter = 0x30d370, what = PBC_POSTCOMP, eval = (nil)), line 3388 in "packfile.c"
[3] main(argc = 1, argv = 0xffbefa48), line 624 in "main.c"
(dbx) print *interpreter->code
dbx: reference through nil pointer
(dbx) print *interpreter
*interpreter = {
ctx = {
state = 0x30dfb8
bp = {
regs_n = 0x30e120
regs_i = 0x30e120
}
bp_ps = {
regs_p = 0x30e220
regs_s = 0x30e220
}
}
ctx_mem = {
free_list = 0x30de68
n_free_slots = 81
}
stash_hash = 0x364fd0
arena_base = 0x30eab8
class_hash = 0x364fa0
vtables = 0x357378
n_vtable_max = 72
n_vtable_alloced = 100
piodata = 0x30e2b0
op_lib = 0x29daf8
op_count = 1219U
op_info_table = 0x29ee38
op_func_table = 0x29db28
evc_func_table = (nil)
save_func_table = (nil)
n_libs = 0
all_op_libs = (nil)
flags = PARROT_NO_FLAGS
debug_flags = 0
run_core = PARROT_SLOW_CORE
profile = (nil)
resume_flag = 4
resume_offset = 0
code = (nil)
initial_pf = 0x4b2d10
imc_info = 0x4b2cb0
output_file = 0xffbefb76 "cfg_1.pasm"
pdb = (nil)
debugger = (nil)
lo_var_ptr = (nil)
parent_interpreter = (nil)
world_inited = 1
iglobals = 0x3648e0
DOD_registry = (nil)
HLL_info = 0x3696b8
HLL_namespace = 0x3696a0
binop_mmd_funcs = 0x357138
n_binop_mmd_funcs = 47U
caches = 0x30e2e0
const_cstring_table = 0x3526a0
task_queue = 0x4b2c70
sleeping = 0
exceptions = (nil)
exc_free_list = (nil)
exception_list = 0x4ae108
thread_data = (nil)
recursion_limit = 1000U
gc_generation = 0
current_args = (nil)
current_params = (nil)
current_returns = (nil)
current_cont = (nil)
current_object = (nil)
current_method = (nil)
}

Summary of my parrot 0.4.4 (r0) configuration:
configdate='Tue May 23 11:50:30 2006'
Platform:
osname=solaris, archname=sun4-solaris
jitcapable=0, jitarchname=nojit,
jitosname=solaris, jitcpuarch=sun4
execcapable=0
perl=perl5.6
Compiler:
cc='cc', ccflags='-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DDISABLE_GC_DEBUG=1 -DNDEBUG -g',
Linker and Libraries:
ld='cc', ldflags=' -L/usr/local/lib -R/usr/local/lib ',
cc_ldflags='',
libs='-lsocket -lnsl -ldl -lm -lpthread -lrt'
Dynamic Linking:
share_ext='.so', ld_share_flags='-G -L/usr/local/lib -R/usr/local/lib',
load_ext='.so', ld_load_flags='-G -L/usr/local/lib -R/usr/local/lib'
Types:
iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
ptrsize=4, ptr_alignment=4 byteorder=4321,
nv=double, numvalsize=8, doublesize=8

--
Andy Dougherty doug...@lafayette.edu

Leopold Toetsch

unread,
May 24, 2006, 10:08:36 AM5/24/06
to perl6-i...@perl.org, Andy Dougherty, bugs-bi...@netlabs.develooper.com
Am Dienstag, 23. Mai 2006 19:09 schrieb Andy Dougherty:
> As of this morning's snapshot (Tue May 23 07:15:07 2006 UTC) The
> following additional 90 tests dump core.  They didn't do that last
> week.

Silly error fixed. /Me wonders though, why this tested ok on x86/linux and
OS/X darwin.

Thanks for reporting,
leo

Andy Dougherty

unread,
May 24, 2006, 10:37:41 AM5/24/06
to Leopold Toetsch via RT

It's a Test.pm bug. I just filed an analysis of it in
[perl #39197] lib/Parrot/Test.pm ignores core dumps failures!

--
Andy Dougherty doug...@lafayette.edu

0 new messages