Ticket #332 (closed bug: worksforme)

Opened 13 years ago

Last modified 11 years ago

icc-10.0 32bit imcc crash

Reported by: rurban Owned by:
Priority: normal Milestone:
Component: core Version:
Severity: medium Keywords:
Cc: Language:
Patch status: Platform: linux

Description (last modified by rurban) (diff)

parsing config_lib.pasm crashes. I'll step into it.

rurban@gentoo-vm ~/parrot $ uname -a
Linux gentoo-vm 2.6.23-gentoo-r3 #1 SMP Mon Dec 31 12:00:09 EST 2007 i686 Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz GenuineIntel GNU/Linux

emerge icc
perl Configure.pl --cc=icc --ld=icc && make
emerge idb
export PATH=$PATH:/opt/intel/idb/10.0.026/bin

rurban@gentoo-vm ~/parrot $ idb --args ./miniparrot config_lib.pasm
Intel(R) Debugger for applications running on IA-32, Version 31, Build 20070716
------------------
object file name: ./miniparrot
INTERNAL ERROR: unexpected address for .text of /usr/src/perl/parrot/miniparrot
Expected = 0x08049000, actual = 0x08048000, diff = 0xfffff000
Reading symbols from /usr/src/perl/parrot/miniparrot...done.
(idb) run
INTERNAL ERROR: unexpected address for .text of /usr/src/perl/parrot/miniparrot
Expected = 0x08049000, actual = 0x08048000, diff = 0xfffff000
Starting program: /usr/src/perl/parrot/miniparrot
Program received signal SIGSEGV

(idb)
Summary of my parrot 0.9.0 (r0) configuration:
  configdate='Sat Feb 14 13:11:11 2009 GMT'
  Platform:
    osname=linux, archname=i686-linux
    jitcapable=1, jitarchname=i386-linux,
    jitosname=LINUX, jitcpuarch=i386
    execcapable=1
    perl=/usr/bin/perl5.8.8
  Compiler:
    cc='icc', ccflags=' -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -wd269 -wd1572 -wd1599 -wd181 -wd869 -wd981 -wd1419 -wd117 -wd810 -wd177 -wd1296 -Wall -Wcheck -w2 -Wabi -Wcomment -Wdeprecated -Wmain -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wstrict-prototypes -Wuninitialized -Wunknown-pragmas -Wunused-function -Wunused-variable -we147 -D_GNU_SOURCE -DHAS_GETTEXT',
  Linker and Libraries:
    ld='icc', ldflags=' -L/usr/local/lib',
    cc_ldflags='',
    libs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lgmp -lreadline '
  Dynamic Linking:
    share_ext='.so', ld_share_flags=' -shared -g -pipe -fexceptions -fPIC',
    load_ext='.so', ld_load_flags=' -shared -g -pipe -fexceptions -fPIC'
  Types:
    iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
    ptrsize=4, ptr_alignment=1 byteorder=1234,
    nv=double, numvalsize=8, doublesize=8

Change History

Changed 13 years ago by rurban

  • description modified (diff)
Summary of my parrot 0.9.0 (r0) configuration:
  configdate='Sat Feb 14 13:11:11 2009 GMT'
  Platform:
    osname=linux, archname=i686-linux
    jitcapable=1, jitarchname=i386-linux,
    jitosname=LINUX, jitcpuarch=i386
    execcapable=1
    perl=/usr/bin/perl5.8.8
  Compiler:
    cc='icc', ccflags=' -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -wd269 -wd1572 -wd1599 -wd181 -wd869 -wd981 -wd1419 -wd117 -wd810 -wd177 -wd1296 -Wall -Wcheck -w2 -Wabi -Wcomment -Wdeprecated -Wmain -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wstrict-prototypes -Wuninitialized -Wunknown-pragmas -Wunused-function -Wunused-variable -we147 -D_GNU_SOURCE -DHAS_GETTEXT',
  Linker and Libraries:
    ld='icc', ldflags=' -L/usr/local/lib',
    cc_ldflags='',
    libs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lgmp -lreadline '
  Dynamic Linking:
    share_ext='.so', ld_share_flags=' -shared -g -pipe -fexceptions -fPIC',
    load_ext='.so', ld_load_flags=' -shared -g -pipe -fexceptions -fPIC'
  Types:
    iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
    ptrsize=4, ptr_alignment=1 byteorder=1234,
    nv=double, numvalsize=8, doublesize=8

Changed 13 years ago by rurban

  • description modified (diff)

Changed 13 years ago by rurban

  • description modified (diff)

Changed 13 years ago by rurban

emerge strace

with strace it seems to be that the idb debugger is broken, and that's an IO problem only.

uname({sys="Linux", node="gentoo-vm", ...}) = 0
brk(0)                                  = 0x804b000
brk(0x806c000)                          = 0x806c000
mmap2(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7472000
time(NULL)                              = 1234628485
brk(0x808d000)                          = 0x808d000
brk(0x80ae000)                          = 0x80ae000
brk(0x80cf000)                          = 0x80cf000
brk(0x80f0000)                          = 0x80f0000
brk(0x8111000)                          = 0x8111000
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
open("config_lib.pasm", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=15157, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7988000
read(3, "# ex: set ro:\n# DO NOT EDIT THIS"..., 8192) = 8192
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

Changed 13 years ago by rurban

  • description modified (diff)
  • summary changed from icc-10.0 32bit unexpected address for .text to icc-10.0 32bit imcc crash

Changed 13 years ago by rurban

  • status changed from new to assigned
  • owner set to rurban

for reference how to reproduce easiest:

rurban@gentoo-vm ~/parrot $ ./miniparrot -v -D88 -d88 -t -E config_lib.pasm .pccsub main: Segmentation fault rurban@gentoo-vm ~/parrot $ idb --args ./miniparrot -v -D88 -d88 -t -E config_lib.pasm (idb) b do_pre_process (idb) run

Changed 13 years ago by rurban

gdb --tui --args ./miniparrot -v -D88 -d88 -t -E config_lib.pasm

(gdb) bt
#0  0x1a02b808 in ?? ()
#1  0x0816ff07 in is_op (interp=0x8518040, name=0x85c9f10 "get_params")
    at compilers/imcc/parser_util.c:301
#2  0x083b8eec in yylex (valp=0xbf920db8, yyscanner=0x85c5c18,
    interp=0x8518040) at compilers/imcc/imcc.l:653
#3  0x081635bc in do_pre_process (interp=0x8518040)
    at compilers/imcc/main.c:727
#4  0x081647df in imcc_run (interp=0x8518040,
    sourcefile=0xbf921734 "config_lib.pasm", argc=1, argv=0xbf920f0c)
    at compilers/imcc/main.c:1069
#5  0x08054741 in main (argc=1, argv=0xbf920f0c) at src/main.c:61
(gdb) up
#1  0x0816ff07 in is_op (interp=0x8518040, name=0x85c9f10 "get_params")
    at compilers/imcc/parser_util.c:301
(gdb) p interp->op_lib
$1 = (op_lib_t *) 0x84e1ff3
(gdb) p *interp->op_lib
$2 = {name = 0x43327400 <Address 0x43327400 out of bounds>,
  suffix = 0x43327c08 <Address 0x43327c08 out of bounds>, core_type = 8,
  flags = 0, major_version = 0, minor_version = 2304, patch_version = 0,
  op_count = 324608, op_info_table = 0x4d320000, op_func_table = 0x4e0c2008,
  op_code = 0x1a02b808}

not initialized!

Changed 13 years ago by rurban

  • component changed from none to core

Changed 12 years ago by coke

  • owner rurban deleted
  • status changed from assigned to new

Changed 11 years ago by whiteknight

  • status changed from new to closed
  • resolution set to worksforme

As of r48416 (and earlier, but I don't know for how long) Parrot builds and tests 100% with 32bit ICC on Ubuntu 10.04. I see no evidence that the issues raised in this ticket are a problem any longer. Closing ticket.

Note: See TracTickets for help on using tickets.