我运行我的Java程序并出现以下错误:
Java HotSpot(TM) 64-Bit Server VM warning: Attempt to allocate stack guard pages failed.
Java HotSpot(TM) 64-Bit Server VM warning: Attempt to unguard stack red zone failed.
[error occurred during error reporting (null), id 0xc0000005]#
# A fatal error has been detected by the Java Runtime Environment:
#
EXCEPTION_STACK_OVERFLOW (0xc00000fd) at pc=0x000000006b7b18a7, pid=4408, tid=4788#
# JRE version: Java(TM) SE Runtime Environment (8.0_60-b27) (build 1.8.0_60-b27)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode windows-amd64 compressed oops)
# Problematic frame:
[jvm.dll+0x2118a7]#
Failed to write core dump.
问题是如何配置Java以正确编写核心转储?以及如何诊断代码中的错误?
答案 0 :(得分:0)
此错误表示JVM(jvm.dll
)已捕获与错误相关的操作系统信号,在本例中为EXCEPTION_STACK_OVERFLOW
。
Oracle有一个非常广泛的关于Troubleshooting guide的文档,其中涵盖了一些问题。请参阅crash due to stack overflow。
本文档描述了如何使用JVM工具调试问题,并且它还告诉您如何enable core dumps但请记住,核心转储用于向Oracle报告错误,您将无法找到有用的信息。
我开发了一些JNI软件包,并且我在我的C代码上调试了一些问题,但问题在于jvm.dll
,所以这是不同的,没有经验。