Clojure 如何获取有关“的更多详细信息”;“内部例外情况”;在` jcmd<;pid>;VM.info“;输出

Clojure 如何获取有关“的更多详细信息”;“内部例外情况”;在` jcmd<;pid>;VM.info“;输出,clojure,jvm,Clojure,Jvm,我已经在Docker容器中运行的Clojure应用程序上运行了jcmd VM.infodiagnostic命令-以下是基本的系统信息: # 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,

我已经在Docker容器中运行的Clojure应用程序上运行了
jcmd VM.info
diagnostic命令-以下是基本的系统信息:

# 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)
我注意到的一件事是
内部异常(10个事件)
部分,其中我发现了以下异常的几个实例:

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
...
重新定义的类(0个事件):
无事件
内部异常(10个事件):

事件:4103.838线程0x00007f800400c800异常方法和

中的相关
\u异常
字段这看起来很像这些异常是clojure实现的内部异常,而不是JDK实现的内部异常。这是真的,但仍然没有多大帮助,因为我不知道从哪里开始我的调查(我自己的clojure应用程序?无数第三方LIB?clojure lang本身?)如果有办法获得关于这些异常的更多信息,那将非常有用。我想,无论是应用程序还是JDK代码都不会处理
clojure.lang.Keyword
,因此最有可能的是clojure实现,它试图将
clojure.lang.Keyword
转换为
CharSequence
re是一个版本,其中
clojure.lang.Keyword
真正实现了
CharSequence
,并且您链接了不兼容的库版本。您可以使用跟踪此类异常的来源。有关详细信息,请参阅。您希望了解什么?是什么事件导致您运行
jcmd VM.info
?如果您只是运行此f或者有趣的是,这些异常在您的程序中并不是以错误的形式出现的,我猜不会发生任何事情。例如,我刚刚在一个行为良好的java进程上运行了这个命令,它显示了10个“内部异常”这似乎无关紧要。如果它们在您的程序中显示为错误,我会尝试首先从这个角度而不是从
jcmd
调试它们。这看起来非常像clojure实现内部的异常,而不是JDK实现。这是真的,但仍然没有太大帮助,因为我不知道从哪里开始我的调查(我自己的clojure应用程序?无数第三方LIB?clojure lang本身?)如果有办法获得关于这些异常的更多信息,那将非常有用。我想,无论是应用程序还是JDK代码都不会处理
clojure.lang.Keyword
,因此最有可能的是clojure实现,它试图将
clojure.lang.Keyword
转换为
CharSequence
re是一个版本,其中
clojure.lang.Keyword
真正实现了
CharSequence
,并且您链接了不兼容的库版本。您可以使用跟踪此类异常的来源。有关详细信息,请参阅。您希望了解什么?是什么事件导致您运行
jcmd VM.info
?如果您只是运行此f或者有趣的是,这些异常在您的程序中并不是以错误的形式出现的,我猜不会发生任何事情。例如,我刚刚在一个行为良好的java进程上运行了这个命令,它显示了10个“内部异常”这似乎无关紧要。如果它们在您的程序中显示为错误,我会尝试首先从这个角度而不是从
jcmd
调试它们。