scala - 由于 "Invalid memory access of location"导致的 JVM 段错误

标签 scala jvm segmentation-fault sbt scalatest

我有一个用 Scala 2.9.2 编写的小项目,其中包含使用 ScalaTest 编写的单元测试。我使用 SBT 来编译和运行我的测试。

在我的项目上运行 sbt test 会定期导致 JVM 段错误,但仅从 SBT 编译和运行我的项目就可以正常工作。这是确切的错误消息:

Invalid memory access of location 0x8 rip=0x10959f3c9
[1]    11925 segmentation fault  sbt

我无法在任何地方找到核心转储,但如果可以的话,我很乐意提供。

运行 java -version 结果如下:

java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

但我还安装了 Java 7(尽管我从来没有能够用它实际运行 Java 程序,afaik)。

另一个可能相关的问题:我的一些测试用例包含包含括号的标题,例如 ()。 SBT 或 ScalaTest(不确定)将因此在输出中间插入方括号。例如,名称为 (..)..(..) 的测试用例可能突然看起来像 (..[..](..)

非常感谢任何解决这些问题的帮助:-)

编辑:我安装了 Java 7 JDK,所以现在 java -version 显示正确的内容:

java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

这也意味着我现在得到了更详细的段错误和核心转储:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x000000010a71a3e3, pid=16830, tid=19459
#
# JRE version: 7.0_07-b10
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# V  [libjvm.dylib+0x3cd3e3]

the dump .

编辑:将 scalaVersion 更改为 2.9.1 一次出现以下错误,然后出现与上述相同的错误:

Could not load hsdis-amd64.dylib; library not loadable; PrintAssembly is disabled
[thread 25091 also had an error]

最佳答案

JVM 段错误通常表示系统内存有问题,尤其是在未被推到极限时。

整夜运行 memtestx86。

关于scala - 由于 "Invalid memory access of location"导致的 JVM 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13754562/

相关文章:

java - 使用mvn assembly :single to build a jar-with-dependencies?时如何包含本地jar

java - JProfiler UnsatisfiedLinkError 启动时

c++ - C++ 中神秘的段错误?

scala - Akka - 是否有可能在 Actor 的主管中收到有关它失败的消息?

java - 您打算在什么项目上使用 Scala 编程语言?

scala - 如何匹配多个参数?

java - Log4J - J2EE - 动态变量

scala - 如何记录所有未过滤的请求

由于输入数组尺寸过大,C 程序崩溃(段错误)。如何在不使用 static/global/malloc 的情况下防止它?

c - 哈希表中的段错误 - C