,clojure,jvm"/>

首页 > 解决方案 > 如何在`jcmd中获取有关“内部异常”的更多详细信息VM.info" 输出

问题描述

jcmd <pid> VM.info在 Docker 容器中运行的 Clojure 应用程序上运行了诊断命令 - 这是基本系统信息:

# JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 
11.0.1+13-Ubuntu-3ubuntu3.18.10.1)
# Java VM: OpenJDK 64-Bit Server VM (11.0.1+13-Ubuntu-3ubuntu3.18.10.1, 
mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)

我注意到的一件事是Internal exceptions (10 events)我发现以下异常的几个实例的部分:

Classes redefined (0 events):
No events

Internal exceptions (10 events):
Event: 4103.838 Thread 0x00007f800400c800 Exception <a 'java/lang/ClassCastException'{0x00000000c78ba0b0}: class clojure.lang.Keyword cannot be cast to class java.lang.CharSequence (clojure.lang.Keyword is in unnamed module of loader 'app'; java.lang.CharSequence is in module java.base of loader
...

现在我想知道这些“内部异常”到底是什么。那是我的应用程序代码中抛出的东西,可能会被默默地忽略吗?我可以获得有关它们的更多信息(可能是堆栈跟踪)吗?

我试图深入研究 JDK 源代码,但找不到关于“内部异常”的详细信息。我唯一发现的是 events.cpp 中的VMError ::print_vm_info方法和相关_exceptions字段

标签: clojurejvm

解决方案


推荐阅读