Java アプリケーションをリモートでデバッグしていて、デバッガーが予想とは異なる情報を表示しました。ソース ファイルが正しくリンクされました。jvm最適化が命令の順序を変更する可能性はありますか?
質問する
189 次
2 に答える
1
これは依存します。
JVM (特に Hotspot または JIT コンパイラー) は、結果が同じになると判断できる場合、命令を変更することがあります。
Oracle JVM を使用-Xint
すると、JIT とホットスポットを無効にするオプションを指定でき、実行されるコードが記述されたものと同じであることを確認できます。
于 2013-07-10T08:34:21.777 に答える
0
たとえば、リモートでデバッグしているときに、サーバーにまだプッシュされていないコードに変更を加えたときに矛盾が発生しました。そのため、サーバーで古いバージョンをデバッグすると、デバッガーは以前に関連した行番号をまだ参照していたため、コード内の空の行または別のメソッドの行を指すことがありました。サーバーとローカル コード リポジトリを同期すると、すべてが正常に戻りました。
于 2013-07-10T08:55:23.577 に答える