JVM異常退出


JVM運行過程中有可能異常退出,即JVM進程忽然消失,此時通常不是Java Stack或者Java Heap出現異常,而是與OS本地堆棧有關。JVM中運行的應用系統通常難以處理此問題,但如果應用系統中使用了JNI,則有可能與此部分代碼相關。

在Windows上,JVM異常退出時通常會生成“hs_err_pidXXXX.log”文件,此文件位於JVM進程的“當前路徑”下(如Tomcat的bin/),可以從此文件中得到異常退出時的現象。遺憾的是,應用系統開發人員很難分析此文件,但可以根據此文件得到一些信息,或者將此文件反饋給能夠分析的技術社區。

下面列舉幾種HotSpot JVM異常退出時產生的“hs_err_pidXXXX.log”文件中的信息:

異常一:

# An unexpected error has been detected by Java Runtime Environment:
#  EXCEPTION_STACK_OVERFLOW (0xc00000fd) at pc=0x6da3a7fd, pid=3012, tid=3108
# Java VM: Java HotSpot(TM) Client VM (11.0-b15 mixed mode windows-x86)
# Problematic frame:
# V  [jvm.dll+0x18a7fd]
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp#

異常二:

# An unexpected error has been detected by Java Runtime Environment:
# java.lang.OutOfMemoryError: requested 1024000 bytes for GrET in C:\BUILD_AREA\jdk6_10\hotspot\src\share\vm\utilities\growableArray.cpp. Out of swap space?
#  Internal Error (allocation.inline.hpp:42), pid=4060, tid=3816
#  Error: GrET in C:\BUILD_AREA\jdk6_10\hotspot\src\share\vm\utilities\growableArray.cpp
# Java VM: Java HotSpot(TM) Client VM (11.0-b15 mixed mode windows-x86)
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp

注:上面列舉的JVM異常只包含部分總結性的信息,log文件中還有更多的詳細信息。

HotSpot JVM之外的其他JVM是否有類似信息尚未確定,但此類問題通常應用層開發者難以解決(JNI相關應用的開發者除外)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM