Hello, I am trying to get memcheck (valgrind-3.10.0.SVN) to run Jikes RVM (3.1.3+hg) on an x86_64-linux machine in 32-bit mode. However when I run:
WRAP="valgrind --smc-check=all --undef-value-errors=no --workaround-gcc296-bugs=yes" rvm -wrap "$WRAP" -X:gc:eagerMmapSpaces=true HelloWorld I get a SIGSEGV in memcheck: ==10692== Memcheck, a memory error detector ==10692== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==10692== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info ==10692== Command: /home/karl/r/jikesrvm/dist/development_x86_64-linux/JikesRVM -X:ic=/home/karl/r/jikesrvm/dist/development_x86_64-linux/RVM.code.image -X:id=/home/karl/r/jikesrvm/dist/development_x86_64-linux/RVM.data.image -X:ir=/home/karl/r/jikesrvm/dist/development_x86_64-linux/RVM.rmap.image -X:vmClasses=/home/karl/r/jikesrvm/dist/development_x86_64-linux/jksvm.jar:/home/karl/r/jikesrvm/dist/development_x86_64-linux/rvmrt.jar -Duser.timezone=PDT -Djava.home=/home/karl/r/jikesrvm/dist/development_x86_64-linux -Dgnu.classpath.home.url=file:/home/karl/r/jikesrvm/dist/development_x86_64-linux -Dgnu.classpath.vm.shortname=JikesRVM -Duser.home=/home/karl -Duser.dir=/home/karl/r -Duser.name=karl -Dos.name=Linux -Dos.version=3.8.0-42-generic -Dos.arch=x86_64 -X:gc:eagerMmapSpaces=true HelloWorld ==10692== ==10692== Warning: client switching stacks? SP change: 0xfecf3a78 --> 0x42048468 ==10692== to suppress, use: --max-stackframe=1127565808 or greater ==10692== Warning: client switching stacks? SP change: 0x4f522d8 --> 0x50c43000 ==10692== to suppress, use: --max-stackframe=1271860520 or greater ==10692== Warning: client switching stacks? SP change: 0x57532d8 --> 0x50c87000 ==10692== to suppress, use: --max-stackframe=1263746344 or greater ==10692== further instances of this message will not be shown. --10692-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting --10692-- si_code=1; Faulting address: 0x80000105; sp: 0x82d10c7c valgrind: the 'impossible' happened: Killed by fatal signal host stacktrace: ==10692== at 0x380660F4: vgPlain_get_StackTrace_wrk (m_stacktrace.c:324) ==10692== by 0x38066438: vgPlain_get_StackTrace (m_stacktrace.c:1441) ==10692== by 0x3804992F: record_ExeContext_wrk (m_execontext.c:341) ==10692== by 0x3801EFA4: vgMemCheck_set_allocated_at (mc_malloc_wrappers.c:305) ==10692== by 0x3801F349: create_MC_Chunk (mc_malloc_wrappers.c:203) ==10692== by 0x3801F69E: vgMemCheck_new_block (mc_malloc_wrappers.c:393) ==10692== by 0x3801F875: vgMemCheck_malloc (mc_malloc_wrappers.c:412) ==10692== by 0x380A7E5E: vgPlain_scheduler (scheduler.c:1783) ==10692== by 0x380BA357: run_a_thread_NORETURN (syswrap-linux.c:103) sched status: running_tid=1 Thread 1: status = VgTs_Runnable Looking at /proc/PID/maps shows that the faulting address (0x80000105) is not mapped, and is located right above the RVM's heap (which I hard coded to end at 0x80000000): ffcd5000-ffcf7000 rw-p 00000000 00:00 0 fecf3000-fecf5000 rw-p 00000000 00:00 0 85c12000-85e11000 rwxp 00000000 00:00 0 82e04000-8591d000 rwxp 00000000 00:00 0 82d11000-82d13000 ---p 00000000 00:00 0 82c11000-82d11000 rwxp 00000000 00:00 0 [stack:10692] 82c0f000-82c11000 ---p 00000000 00:00 0 829f6000-82c0f000 rwxp 00000000 00:00 0 8290f000-82977000 rwxp 00000000 00:00 0 8290e000-8290f000 rw-s 00000000 08:01 2756955 /tmp/vgdb-pipe-shared-mem-vgdb-10692-by-karl-on-??? 81e7b000-8290e000 rwxp 00000000 00:00 0 77400000-80000000 rwxp 00000000 00:00 0 50000000-77400000 rwxp 00000000 00:00 0 47000000-47056000 r--p 00000000 08:01 2501782 /home/karl/r/jikesrvm/dist/development_x86_64-linux/RVM.rmap.image 44000000-45062000 rwxp 00000000 08:01 2498986 /home/karl/r/jikesrvm/dist/development_x86_64-linux/RVM.code.image 40000000-420b0000 rwxp 00000000 08:01 2501780 /home/karl/r/jikesrvm/dist/development_x86_64-linux/RVM.data.image 38367000-39456000 rw-p 00000000 00:00 0 38364000-38367000 rw-p 00363000 08:01 4334855 /usr/local/lib/valgrind/memcheck-x86-linux 38000000-38364000 r-xp 00000000 08:01 4334855 /usr/local/lib/valgrind/memcheck-x86-linux 08060000-08061000 rwxp 00000000 00:00 0 0805f000-08060000 rw-p 00016000 08:01 2501798 /home/karl/r/jikesrvm/dist/development_x86_64-linux/JikesRVM 0805d000-0805f000 r--p 00014000 08:01 2501798 /home/karl/r/jikesrvm/dist/development_x86_64-linux/JikesRVM 08048000-0805d000 r-xp 00000000 08:01 2501798 /home/karl/r/jikesrvm/dist/development_x86_64-linux/JikesRVM 04352000-04752000 rwxp 00000000 00:00 0 0434d000-04352000 rw-p 00000000 00:00 0 0434c000-0434d000 rw-p 001a6000 08:01 1442032 /lib/i386-linux-gnu/libc-2.15.so 0434a000-0434c000 r--p 001a4000 08:01 1442032 /lib/i386-linux-gnu/libc-2.15.so 041a6000-0434a000 r-xp 00000000 08:01 1442032 /lib/i386-linux-gnu/libc-2.15.so 041a5000-041a6000 rw-p 0001c000 08:01 1442000 /lib/i386-linux-gnu/libgcc_s.so.1 041a4000-041a5000 r--p 0001b000 08:01 1442000 /lib/i386-linux-gnu/libgcc_s.so.1 04188000-041a4000 r-xp 00000000 08:01 1442000 /lib/i386-linux-gnu/libgcc_s.so.1 04187000-04188000 rw-p 00000000 00:00 0 04186000-04187000 rw-p 0002a000 08:01 1442027 /lib/i386-linux-gnu/libm-2.15.so 04185000-04186000 r--p 00029000 08:01 1442027 /lib/i386-linux-gnu/libm-2.15.so 0415b000-04185000 r-xp 00000000 08:01 1442027 /lib/i386-linux-gnu/libm-2.15.so 04154000-0415b000 rw-p 00000000 00:00 0 04153000-04154000 rw-p 000dc000 08:01 4070234 /usr/lib32/libstdc++.so.6.0.16 0414f000-04153000 r--p 000d8000 08:01 4070234 /usr/lib32/libstdc++.so.6.0.16 0414e000-0414f000 ---p 000d8000 08:01 4070234 /usr/lib32/libstdc++.so.6.0.16 04076000-0414e000 r-xp 00000000 08:01 4070234 /usr/lib32/libstdc++.so.6.0.16 04075000-04076000 rw-p 00001000 08:01 2501799 /home/karl/r/jikesrvm/dist/development_x86_64-linux/librvm.so 04074000-04075000 r--p 00000000 08:01 2501799 /home/karl/r/jikesrvm/dist/development_x86_64-linux/librvm.so 04073000-04074000 r-xp 00000000 08:01 2501799 /home/karl/r/jikesrvm/dist/development_x86_64-linux/librvm.so 04072000-04073000 rw-p 00003000 08:01 1442031 /lib/i386-linux-gnu/libdl-2.15.so 04071000-04072000 r--p 00002000 08:01 1442031 /lib/i386-linux-gnu/libdl-2.15.so 0406e000-04071000 r-xp 00000000 08:01 1442031 /lib/i386-linux-gnu/libdl-2.15.so 0406c000-0406e000 rw-p 00000000 00:00 0 0406b000-0406c000 rw-p 00017000 08:01 1442021 /lib/i386-linux-gnu/libpthread-2.15.so 0406a000-0406b000 r--p 00016000 08:01 1442021 /lib/i386-linux-gnu/libpthread-2.15.so 04053000-0406a000 r-xp 00000000 08:01 1442021 /lib/i386-linux-gnu/libpthread-2.15.so 04052000-04053000 rw-p 00000000 00:00 0 04051000-04052000 rw-p 00007000 08:01 1442023 /lib/i386-linux-gnu/librt-2.15.so 04050000-04051000 r--p 00006000 08:01 1442023 /lib/i386-linux-gnu/librt-2.15.so 04049000-04050000 r-xp 00000000 08:01 1442023 /lib/i386-linux-gnu/librt-2.15.so 04036000-04037000 rw-p 0000e000 08:01 4334857 /usr/local/lib/valgrind/vgpreload_memcheck-x86-linux.so 04035000-04036000 r--p 0000d000 08:01 4334857 /usr/local/lib/valgrind/vgpreload_memcheck-x86-linux.so 04027000-04035000 r-xp 00000000 08:01 4334857 /usr/local/lib/valgrind/vgpreload_memcheck-x86-linux.so 04026000-04027000 rw-p 00001000 08:01 4334750 /usr/local/lib/valgrind/vgpreload_core-x86-linux.so 04025000-04026000 r--p 00000000 08:01 4334750 /usr/local/lib/valgrind/vgpreload_core-x86-linux.so 04024000-04025000 r-xp 00000000 08:01 4334750 /usr/local/lib/valgrind/vgpreload_core-x86-linux.so 04022000-04024000 rw-p 00000000 00:00 0 04021000-04022000 rw-p 00020000 08:01 1442022 /lib/i386-linux-gnu/ld-2.15.so 04020000-04021000 r--p 0001f000 08:01 1442022 /lib/i386-linux-gnu/ld-2.15.so 04000000-04020000 r-xp 00000000 08:01 1442022 /lib/i386-linux-gnu/ld-2.15.so Any idea as to what's going on, or how I might debug the problem further? Any Valgrind flags or options I might be missing? The RVM runs fine on its' own, as well as in Nulgrind (and cachegrind and callgrind): $ WRAP="valgrind --tool=none" $ rvm -wrap "$WRAP" -X:gc:eagerMmapSpaces=true HelloWorld ==10877== Nulgrind, the minimal Valgrind tool ==10877== Copyright (C) 2002-2013, and GNU GPL'd, by Nicholas Nethercote. ==10877== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info ==10877== Command: /home/karl/r/jikesrvm/dist/development_x86_64-linux/JikesRVM -X:ic=/home/karl/r/jikesrvm/dist/development_x86_64-linux/RVM.code.image -X:id=/home/karl/r/jikesrvm/dist/development_x86_64-linux/RVM.data.image -X:ir=/home/karl/r/jikesrvm/dist/development_x86_64-linux/RVM.rmap.image -X:vmClasses=/home/karl/r/jikesrvm/dist/development_x86_64-linux/jksvm.jar:/home/karl/r/jikesrvm/dist/development_x86_64-linux/rvmrt.jar -Duser.timezone=PDT -Djava.home=/home/karl/r/jikesrvm/dist/development_x86_64-linux -Dgnu.classpath.home.url=file:/home/karl/r/jikesrvm/dist/development_x86_64-linux -Dgnu.classpath.vm.shortname=JikesRVM -Duser.home=/home/karl -Duser.dir=/home/karl/r -Duser.name=karl -Dos.name=Linux -Dos.version=3.8.0-42-generic -Dos.arch=x86_64 -X:gc:eagerMmapSpaces=true HelloWorld ==10877== Hello, World ==10877== Also, when I turn back on undef-value-errors in memcheck, it reports an invalid memory access / SIGSEGV: [ ... numerous "uninitialised values" in the RVM code image ... ] JikesRVM: TROUBLE. Got a signal (Segmentation fault; #11) from outside the VM's address space in thread 0x4350cc0. JikesRVM: UNRECOVERABLE trapped signal 11 (Segmentation fault) handler stack 41e84ab si->si_addr 0xccccccd1 cs 0x00000023 ds 0x0000002b es 0x0000002b fs 0x00000000 gs 0x0000000b ss 0x0000002b edi 0x04301a40 esi -- PR/VP 0x4203d277 ebp 0xcccccccd esp -- SP 0x4203cd40 ebx 0x0434bff4 edx 0x00000000 ecx 0x00000000 eax 0x04301a40 eip 0x041e84ab trapno 0x0000000e err 0x00000004 eflags 0x00000044 fpregs 4355f04 oldmask 0x00000000 cr2 0xccccccd1 fp0 0x00000000000000000000 fp1 0x00000000000000000000 fp2 0x00000000000000000000 fp3 0x00000000000000000000 fp4 0x00000000000000000000 fp5 0x00000000000000000000 fp6 0x00000000000000000000 fp7 0x00000000000000000000 JikesRVM: internal error ==11293== ==11293== Process terminating with default action of signal 11 (SIGSEGV) ==11293== Access not within mapped region at address 0xCCCCCCD1 Thanks, -Karl Cronburg- NB: This is a follow up to posting to the Jikes RVM mailing list (http://sourceforge.net/p/jikesrvm/mailman/message/32577482/) which led to the problem described in this email. ------------------------------------------------------------------------------ Open source business process management suite built on Java and Eclipse Turn processes into business applications with Bonita BPM Community Edition Quickly connect people, data, and systems into organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards http://p.sf.net/sfu/Bonitasoft _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users