我在MacOS Mavericks MacbookAir笔记本电脑上写了一个应用程序。它工作正常。然后我检查了另一台笔记本电脑上的代码,一个Mavericks MacbookPro(视网膜前)。
当我启动grails控制台时,它工作正常。一旦我尝试执行run-app
,我就会得到SIGSEGV。
这是屏幕上显示的内容:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000000010fff41af, pid=85762, tid=23811
#
# JRE version: Java(TM) SE Runtime Environment (8.0_20-b26) (build 1.8.0_20-b26)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.20-b23 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# V [libjvm.dylib+0x4261af] Klass::is_subtype_of(Klass*) const+0x7
#
# Core dump written. Default location: /cores/core or core.85762
#
# An error report file with more information is saved as:
# /Users/rsom/src/maas/hs_err_pid85762.log
#
当我查看hs_err_pid日志文件时,这就是我所看到的
Stack: [0x0000000127ab1000,0x0000000127bb1000], sp=0x0000000127bad860, free space=1010k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x4261af] Klass::is_subtype_of(Klass*) const+0x7
V [libjvm.dylib+0x3a50e5] LinkResolver::runtime_resolve_interface_method(CallInfo&, methodHandle, KlassHandle, Handle, KlassHandle, bool, Thread*)+0x7b
V [libjvm.dylib+0x3a593f] LinkResolver::resolve_interface_call(CallInfo&, Handle, KlassHandle, KlassHandle, Symbol*, Symbol*, KlassHandle, bool, bool, Thread*)+0xd1
V [libjvm.dylib+0x3a5af3] LinkResolver::resolve_invokeinterface(CallInfo&, Handle, constantPoolHandle, int, Thread*)+0x143
V [libjvm.dylib+0x3a69b0] LinkResolver::resolve_invoke(CallInfo&, Handle, constantPoolHandle, int, Bytecodes::Code, Thread*)+0x3ce
V [libjvm.dylib+0x2ce675] InterpreterRuntime::resolve_invoke(JavaThread*, Bytecodes::Code)+0x371
j org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(Ljava/lang/String;Lorg/hibernate/mapping/PersistentClass;Ljava/lang/Class;Ljavax/validation/ValidatorFactory;Ljava/util/Set;ZLorg/hibernate/dialect/Dialect;)V+1
j org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyRelationalConstraints(Ljavax/validation/ValidatorFactory;Ljava/util/Collection;Ljava/util/Properties;Lorg/hibernate/dialect/Dialect;)V+121
j org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyRelationalConstraints(Ljavax/validation/ValidatorFactory;Lorg/hibernate/cfg/beanvalidation/ActivationContext;)V+106
j org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate(Lorg/hibernate/cfg/beanvalidation/ActivationContext;)V+88
v ~StubRoutines::call_stub
我有一个同样的笔记本电脑的同事在他的机器上做同样的事情,他能够启动应用程序。
可能出现什么问题?
关于我如何调试的任何指示?
答案 0 :(得分:1)
可能是硬件问题。我在运行android studio时遇到了类似的问题,这是由于我的RAM中的问题。我改变了它,问题解决了。之后没有这样的问题。
类似的问题发生在另一个曾问question in stackoverflow的人身上。最后他的问题是“这是一个硬件问题”。
答案 1 :(得分:1)
几天之后,我的一位同事告诉我在较旧的JVM上运行相同的操作。所以我尝试了7u55。它还在其他3台计算机上运行,这些计算机在7u60,7u67和8u20上都出现故障。
显然JVM中存在回归。