什么原因导致Java程序死于带有SIGSEGV的热点转储?

时间:2013-09-28 14:48:46

标签: java jvm

好吧,我有一个在Ubuntu上运行Java 64bits(6.0_35)的应用程序,也是在10.04 64位。每次我执行一个特定的方法,我的JVM崩溃,我不会有ideia为什么。

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f75e3e639a3, pid=3750, tid=140144311375616
#
# 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  [libLeituraMFDBin_x64.so+0x99a3]  LeituraMFDBin(char const*, char const*, char const*, bool, bool, bool, bool)+0xebf
#
# An error report file with more information is saved as:
# /projetos/trunk_desenvolvimento/hs_err_pid3750.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

1 个答案:

答案 0 :(得分:4)

您正在使用本机库:libLeituraMFDBin_x64.so。它崩溃了。它有一个bug;给定一些输入条件,它会指向无效内存的指针。它可能就像传递它无法检查的Java null一样简单,或者可能是一些导致存储损坏的复杂编码错误。在任何情况下,库都无法对JNI库进行基本测试,而不会崩溃

您需要与该库的作者一起讨论。显然,这个库的问题很常见,请参阅this link作为示例。