从 Java VM 对堆栈红色区域的访问无效

2022-09-03 14:43:37

我试图找出在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)

我所寻找的只是一些关于如何避免再次击中这个问题的解释和提示。

提前致谢!


答案 1

我今天在OSX上发现了同样的错误。跟踪它到相当于一个堆栈的实体bean中的Overlfow


答案 2

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

分配给应用程序的每个内存块都带有一个前导和尾随的“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


推荐