在应用程序执行期间显示 JVM 的 ThreadStackSize

Display the JVM's ThreadStackSize during the execution of an application

我需要调试一个有时会产生 Whosebug 异常的应用程序。偶尔会出现这种情况,不知道是哪里出了问题,因为异常是在一直刷新图片的线程中抛出的,所以没办法看到完整的stack trace。

为了每次我 运行 应用程序重现错误(而不是需要执行几次直到错误突然发生)我想减少 JVM 的 ThreadStackSize。我知道如何做到这一点,但我想做的是通过控制台显示当前 JVM 的线程堆栈大小,以确保更改有效。

所以,我的问题是:Java是否提供任何机制来在特定应用程序执行期间显示上述信息?

Java Mission Control 提供了一个 JVM 内部接口,也可以堆栈。 有官方demo。您只需要连接到 JVM。

顺便说一句:您可以使用计数器和调用顺序实现简单的调用跟踪器。

display the current JVM's thread stack size through the console

jinfo -flag ThreadStackSize PID