利用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
”即可输出详细堆栈信息