在Valgrind中运行java程序时JVM未启动

在Valgrind中运行java程序时JVM未启动,java,valgrind,Java,Valgrind,我正在Valgrind下运行一个java程序来检查32位Red hat Linux中的内存泄漏。当我使用valgrind执行程序时,JVM并没有开始抛出下面的异常 Error occurred during initialization of VM Could not reserve enough space for object heap Error: Could not create the Java Virtual Machine. Error: A fatal exception has

我正在Valgrind下运行一个java程序来检查32位Red hat Linux中的内存泄漏。当我使用valgrind执行程序时,JVM并没有开始抛出下面的异常

Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
我的环境是

Red Hat Enterprise Linux Server release 6.2 (Santiago)

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Server VM (build 24.45-b08, mixed mode)

valgrind-3.6.0
我能够在没有Valgrind的情况下成功运行相同的程序

valgrind  -v --smc-check=all --tool=memcheck --leak-check=yes --show-reachable=yes --leak-check=full --freelist-vol=100000000 --log-file=log.txt java -d32 -classpath "./bin:./lib/*" -Djava.library.path=/home/jni test.TestMain

我在这里遗漏了什么吗?

Java旧垃圾收集,为什么要检查内存泄漏?内存泄漏在哪里?我的程序涉及JNI集成,必须对其进行内存泄漏测试。但问题似乎是使用Valgrind和一个简单的java程序启动JVM。我不确定这是否已经是一个bug了?您可以尝试在命令行上的
java
之后添加
-Xms1024m-Xmx1024m
吗?@JosefN我知道它不能,但在java代码上使用valgrind将是一个错误。。。嗨,Elliott,我试着设置堆内存大小,但是结果是一样的,尽管机器中有足够的可用内存空闲-已使用的空闲共享缓冲区缓存内存总数:151011905139501481519-/+缓冲区/缓存:23814863交换:17279017279