在我的应用程序日志中(使用log4j),我看到一个NullPointerException,但没有堆栈跟踪.我知道,作为一种优化,当多次发生异常时 - jvm会停止产生堆栈跟踪.问题是前一段时间发生的异常,并且所有日志都填充了没有堆栈跟踪的异常.有没有办法"重置"这个机制,所以下一个抛出的异常将打印出完整的堆栈跟踪?我不想重新启动应用程序,因为很难重现这个bug,重启可能会导致"消失"...
谢谢!
dog*_*ane 76
尝试使用以下JVM属性运行:
-XX:-OmitStackTraceInFastThrow
Run Code Online (Sandbox Code Playgroud)
从发行说明:
服务器VM中的编译器现在为所有"冷"内置异常提供正确的堆栈回溯.出于性能目的,当抛出这样的异常几次时,可以重新编译该方法.重新编译之后,编译器可以使用不提供堆栈跟踪的预分配异常来选择更快的策略.要完全禁用预分配的异常,请使用以下新标志:
-XX:-OmitStackTraceInFastThrow.
| 归档时间: |
|
| 查看次数: |
25343 次 |
| 最近记录: |