15

I'm trying to figure out what can cause this error in Java:

Invalid access of stack red zone 0x115ee0ed0 rip=0x114973900

Has anyone ever encountered this error message? It's literally killing the JVM and everything stops there.

I'm currently using this version of Java:(on OS X 10.6)

java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219)
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)

All I'm looking for is some sort of explanation and tips on how to avoid hitting this again.

Thanks in advance!

4

4 回答 4

7

我今天在 OSX 上发现了同样的错误。追踪到相当于实体bean中的stackOverlfow

于 2010-11-20T11:18:46.287 回答
5

如果不查看您的代码,很难说出导致错误的原因,但这里是关于红色区域的解释以及讨论该问题的几个链接。

分配给应用程序的每个内存块都带有一个前导和尾随的“redzone”,这是分配给应用程序的内存之前和之后的内存中的特殊签名。如果应用程序要在此区域之外进行覆盖,则红色区域签名将被覆盖。然后稍后应用程序崩溃,当内存返回时你会得到这个异常结束,操作系统可以检查红色区域。

此问题已在 Mac OSX 上发现,因此当未找到类时,它可能与类加载器问题有关,但在 mac osx 上,它被报告为红色区域访问。所以用 JDK 1.5 试试看能否重现问题。

http://osdir.com/ml/java.objectweb.asm/2007-07/msg00004.html

http://wiki.geneontology.org/index.php/OEWG_20090505

http://forums.oracle.com/forums/thread.jspa?threadID=429325

于 2009-10-01T04:00:50.057 回答
2

如果这对其他人有帮助。我遇到了这个错误,因为如果一个错误的字符串传递给 JSONArray.fromObject(jsonString);

我正在运行:java 版本“1.6.0_29”Java(TM) SE 运行时环境(构建 1.6.0_29-b11-402-10M3527)Java HotSpot(TM) 64 位服务器 VM(构建 20.4-b02-402,混合模式) OSX 10.6.8

jsonString 一开始就有一个空值,错误是:

堆栈红色区域 0x10d446ba0 rip=0x10c384b87 访问无效

总线错误

这完全杀死了jvm。

一旦我发现这是错误的 json 字符串,修复就很容易了。

希望对某人有所帮助。

于 2012-06-08T14:42:50.217 回答
2

如前所述,这似乎是一个隐形堆栈溢出。提高堆栈大小 JVM 参数 (-Xss)。就我而言,从 -Xss128k 到 -Xss1024k 就可以了。

于 2011-09-06T05:02:30.877 回答