我有一个小项目,用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程序,据我所知)。
可能相关的另一个问题:我的一些测试用例包含带括号的标题,例如(
和)
。因此,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]
并且转储。
编辑:将scalaVersion更改为2.9.1后,会先出现以下错误,然后出现与上述相同的错误:
Could not load hsdis-amd64.dylib; library not loadable; PrintAssembly is disabled
[thread 25091 also had an error]