4

我正在尝试分析由“mvn jetty:run”运行的应用程序,当我将 VisualVM 连接到它并单击 Profile jetty 崩溃时:

Profiler Agent: Waiting for connection on port 5140 (Protocol version: 8)
Profiler Agent: Established local connection with the tool
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6da5e5d4, pid=5124, tid=5704
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) Client VM (14.2-b01 mixed mode windows-x86 )
# Problematic frame:
# V  [jvm.dll+0x1ae5d4]
#
# An error report file with more information is saved as:
# c:\dev\workspaces\credentials\credentialsgui\hs_err_pid5124.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Profiler Agent: JNI On Load Initializing...
Profiler Agent: JNI OnLoad Initialized succesfully

使用 mvn jetty:run 运行不同的应用程序得到的结果相同。

有趣的是,当我使用 NetBeans 的分析器(应该与 VisualVM 相同)时,它可以正常工作,但我更愿意使用 VisualVM 来解决这个问题?

来自 jdk 1.6 的 VisualVM(但我在可下载版本之前也使用过)。

4

1 回答 1

6

VisualVM 的文档说,如果您使用的是 Java 6,则在启动 VM 时必须关闭类共享:

要分析在 JDK 6 上运行的应用程序,您需要关闭应用程序的类共享,否则应用程序可能会崩溃。要关闭类共享,请使用 -Xshare:off 参数启动应用程序。

我怀疑 Maven 在启动 Jetty 时默认不使用此选项。

于 2009-12-03T22:31:58.490 回答