
Java运行时环境检测到致命错误:
SIGSEGV (0xb) at pc=0x00007ff5c7195aaa, pid=262778, tid=140690480097024
JRE version: 6.0_35-b10
Java VM: Java HotSpot(TM) 64-Bit Server VM (20.10-b01 mixed mode linux-amd64 compressed oops)
Problematic frame:
C [libdtagentcore.so+0xb7aaa] long double restrict+0x506f6
我很想知道这可能是什么原因?
任何帮助都非常感谢..谢谢..
Signal Description
SIGSEGV, SIGBUS, SIGFPE, SIGPIPE, SIGILL —
Used in the implementation for implicit null check, and so forth.SIGQUIT Thread dump support — To dump Java stack traces at the standard error stream. (Optional.)
SIGTERM, SIGINT, SIGHUP — Used to support the shutdown hook mechanism (java.lang.Runtime.addShutdownHook) when the VM is terminated abnormally. (Optional.)
SIGUSR1 — Used in the implementation of the java.lang.Thread.interrupt method. (Configurable.) Not used starting with Solaris 10 OS. Reserved on Linux.
SIGUSR2 Used internally. (Configurable.) Not used starting with Solaris 10 OS.
SIGABRT The HotSpot VM does not handle this signal. Instead it calls the abort function after fatal error handling. If an application uses this signal then it should terminate the process to preserve the expected semantics.
致命错误日志表明崩溃是在本机库中,本机代码或JNI库代码中可能存在错误.崩溃当然可能是由其他原因引起的,但对库和任何核心文件或崩溃转储的分析是一个很好的起点.
在这种情况下,SIGSEGV与库libdtagentcore.so中执行的线程一起发生.在某些情况下,本机库中的错误表现为Java VM代码中的崩溃.考虑以下崩溃,其中JavaThread在_thread_in_vm状态下失败(意味着它在Java VM代码中执行)
>如果您在本机应用程序库中遇到崩溃(如您的情况),那么您可以将本机调试器附加到核心文件或崩溃转储(如果可用).根据操作系统,本机调试器是dbx,gdb或windbg.
>另一种方法是在命令行中添加`-Xcheck:jni`选项.此选项无法保证找到JNI代码的所有问题,但它可以帮助识别大量问题.
>如果发生崩溃的本机库是Java运行时环境的一部分(例如awt.dll,net.dll等),则可能是您遇到了库或API错误.如果经过进一步分析后得出结论,这是一个库或API错误,那么收集尽可能多的数据并提交错误或支持调用.
转载注明原文:java – 由于SIGSEGV导致的JVM崩溃 - 乐贴网