我有一个用 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]
和转储。
编辑:将 scalaVersion 更改为 2.9.1 一次出现以下错误,然后出现与上述相同的错误:
Could not load hsdis-amd64.dylib; library not loadable; PrintAssembly is disabled
[thread 25091 also had an error]