【问题标题】:Display the JVM's ThreadStackSize during the execution of an application在应用程序执行期间显示 JVM 的 ThreadStackSize
【发布时间】:2016-08-26 12:23:29
【问题描述】:

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

为了在每次运行应用程序时重现错误(而不是需要多次执行直到突然出现错误),我想减小 JVM 的 ThreadStackSize。我知道怎么做,但我想做的是通过控制台显示当前JVM的线程堆栈大小,以确保更改有效。

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

【问题讨论】:

  • 您问的是堆栈跟踪还是堆栈大小?您的标题与问题相矛盾。
  • 您尝试过 -xss=128k 还是更少?它可以帮助

标签: java multithreading jvm stack-overflow


【解决方案1】:

通过控制台显示当前JVM的线程栈大小

jinfo -flag ThreadStackSize PID

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多