问题定位记录

2022-11-10 21:31:08 浏览数 (1)

利用arthas 进行追踪jvm 相关信息

arthas 启动:

代码语言:javascript复制
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

https://arthas.gitee.io/quick-start.html

arthas 官方文档

无堆栈信息情况:

JVM(HotSpot JVM)进行了优化。当第一次发生异常(通常为NullPointerException)时,将打印完整的堆栈跟踪,并且JVM会记住堆栈跟踪(或者可能只是代码的位置)。 当该异常经常发生时,将不再打印堆栈跟踪,这既可以实现更好的性能,【CoederBaby】又不会使相同的堆栈跟踪充满日志。

参看JVM源码(参见附录2),可见这个优化同时试用于以下异常:

  • NullPointerException
  • ArrayIndexOutOfBoundsException
  • ClassCastException
  • ArrayIndexOutOfBoundsException
  • ArrayStoreException
  • ArithmeticException

解决方法

在java启动命令中添加“-XX:-OmitStackTraceInFastThrow”即可输出详细堆栈信息

0 人点赞