我正在试图弄清楚Java中可能导致此错误的原因:
Invalid access of stack red zone 0x115ee0ed0 rip=0x114973900
有没有人遇到过此错误消息?它实际上是在杀死JVM,一切都停在那里。
我目前正在使用此版本的Java :(在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)
我正在寻找的是关于如何避免再次发生这种情况的某种解释和提示。
提前致谢!
答案 0 :(得分:7)
我今天在OSX上发现了同样的错误。跟踪它到了实体bean中的stackOverlfow
答案 1 :(得分:5)
在不查看代码的情况下,很难说是导致错误的原因,但是这里有关于红区的解释以及很少讨论问题的链接。
每个内存块分配给一个 应用程序带有领先和 尾随“redzone”这是一个特殊的 在之前和之前的记忆中的签名 刚刚将内存分配给 应用。如果申请是 覆盖这个地区以外的地方 红区签名将是 覆盖。然后在以后 应用程序崩溃,你得到这个 在返回内存时异常终止,并且 操作系统可以检查红色区域。
在Mac OSX上发现了这个问题,因此当找不到类时,它可能与类加载器问题有关,但在mac osx上,它被报告为红区访问。 所以尝试使用JDK 1.5,看看你是否可以重现这个问题。
http://osdir.com/ml/java.objectweb.asm/2007-07/msg00004.html
答案 2 :(得分:2)
如前所述,这似乎是隐形堆栈溢出。 Bump up堆栈大小JVM参数(-Xss)。就我而言,从-Xss128k转到-Xss1024k就可以了。
答案 3 :(得分: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字符串,修复很容易。
希望能有所帮助。