我有一个用 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。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!