我从事Java项目已经有几年了。我的代码几个月来一直运行得很好。几天前,我在我的Mac上把Java SDK升级到了最新版本的1.6.0_26 (雪豹10.6.8)。升级后,会发生一些非常奇怪的事情。当我运行一些类时,我得到这个错误:
位置0x202 rip=0x202的内存访问无效
但是,如果我用-Xint (解释型)运行它们,它们会工作,速度很慢,但工作得很好。我在使用位运算符的类中遇到了这个问题(游戏Othello的位板)。我不能在这里放任何代码,因为我没有得到一个错误,异常或类似的东西。我就是收到了那个烦人的信息。
代码不能在没有-Xint的情况下运行,但它可以使用它,这正常吗?我该怎么办?
提前感谢
发布于 2011-07-03 11:58:00
当JVM开始像那样崩溃时,这是某种东西破坏了JVM的执行模型的迹象。
您的应用程序是否包含任何本机代码?它是否使用带有本机代码组件的第三方库?如果两者都不是真的,那么这可能是JVM的Apple端口中的一个bug。它可能是JIT编译器错误,也可能是某个JVM本机代码库中错误。
对于这样的bug,你能做些什么呢?
不是很多。
发布于 2012-02-18 22:02:05
我刚遇到这种情况,结果发现它与一段代码有关,该代码使用对自身的循环引用来序列化JSON对象。我删除了这个循环,错误也就消失了。我怀疑这与内存溢出错误有关,Mac OSX上的新JVM现在以不同的方式处理该错误。在本例中,我运行的是Mac OSX 10.7。
为了完整性,我收到的错误是:
Invalid access of stack red zone 0x10e586d30 rip=0x10daabba6
Bus error: 10
和:
Invalid memory access of location 0x10b655890 rip=0x10a8baba6
Segmentation fault: 11
发布于 2011-07-03 16:46:11
还要验证您是在the event dispatch thread上构建图形用户界面,并且从不从任何其他线程更新图形用户界面组件。
众所周知,相关错误很难重现,但与改变时间相关的变化是有启示性的。
https://stackoverflow.com/questions/6560889
复制相似问题