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

Reply via email to