1. ホーム
  2. java

[解決済み] スタックトレースのない繰り返し発生する例外 - リセットする方法は?重複

2022-02-15 21:48:02

質問

私のアプリケーションログ(log4jを使用)で、私はNullPointerExceptionを見ますが、スタックトレースはありません。私は、最適化として、例外が何回も起こるとき、jvmがスタック・トレースの生成を止めることを知っています。問題は、例外が少し前に発生し、私のすべてのログがスタックトレースのない例外で満たされていることです。このメカニズムをリセットして、次に発生した例外を完全なスタックトレースで表示させる方法はありますか?このバグを再現するのは難しいので、アプリケーションを再起動したくありませんし、再起動すると "go away" が発生する可能性があります...

ありがとうございます。

解決方法は?

以下のJVMプロパティで実行してみてください。

-XX:-OmitStackTraceInFastThrow

から リリースノート :

サーバーVMのコンパイラは、現在 に対して正しいスタックバックトレースを提供します。 コールド" 組み込みの例外のすべて。このため パフォーマンス上、このような 例外が数回スローされた場合、その メソッドは再コンパイルされるかもしれません。再コンパイル後 再コンパイルでは、コンパイラは より高速な戦術として、事前割り当て スタックを提供しない例外 をトレースします。を完全に無効にするには を使用すると、事前割り当て例外の という新しいフラグを立てました。 -XX:-OmitStackTraceInFastThrow .