java - Java中位置的无效内存访问

标签 java jvm

我已经从事 Java 项目一年了。我的代码几个月来一直运行良好。几天前,我在我的 Mac (Snow Leopard 10.6.8) 上将 Java SDK 升级到了最新版本 1.6.0_26。升级后,发生了一些非常奇怪的事情。当我运行某些类时,出现此错误:

位置 0x202 rip=0x202 的无效内存访问

但是,如果我使用 -Xint(解释)运行它们,它们会工作,速度慢但工作正常。我在使用按位运算符(黑白棋游戏的位板)的类中遇到了这个问题。我不能在这里放任何代码,因为我没有收到错误、异常或类似的东西。我刚收到那条烦人的消息。

代码在没有 -Xint 的情况下无法运行但可以正常运行,这是否正常?我该怎么办?

提前致谢

最佳答案

当 JVM 开始像那样崩溃时,表明某些东西已经破坏了 JVM 的执行模型。

您的应用程序是否包含任何本地代码?它是否使用任何带有 native 代码组件的第 3 方库?如果两者都不是,那么这很可能是 JVM 的 Apple 端口中的错误。它可能是 JIT 编译器错误,或某些 JVM native 代码库中的错误。

对于这样的错误,您能做些什么?

不多。

  • 通过逐步削减位来减少您的应用程序,直到您有一个显示问题的小测试用例。
  • 根据测试用例,看看是否有一些经验方法可以避免该问题。
  • 将错误报告连同测试用例一起提交给 Apple。

关于java - Java中位置的无效内存访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560889/

相关文章:

java - 处理应用程序事件

java - 在独立的 Java 项目中访问 DB2 数据库

java - Eclipse Mars保存后始终无法解决导入问题,但是仅清理项目就可以解决

java - 是否有设计模式来强制初始化子类实现的方法?

java - 如何指定 MongoDB 中多个表之间的 @CollectionTable 关系?

java - java是否缓存方法的结果

java - java.security.egd 选项是干什么用的?

Java 8u40 Math.round() 非常慢

JVM 选项列表 - 在 Oracle 之后仍在维护?

java - 获取所有 Antlr 解析错误作为字符串列表