Linux コアダンプまたは Windows ミニダンプに相当する Java は何ですか? ヒープダンプについて読んだことがありますが、それは私が望むもののように見えますが、キャッチされていない例外でそれらを (自動的に) トリガーする方法は?
私はキャッチされていない例外ハンドラーについて知っており、すでにそれを使用して例外 + スタック トレースを出力し、アプリケーション全体を終了しています (そうしないと、スレッドが停止し、アプリケーションが実行し続けますか?) また、ヒープを記録する方法に関するこの投稿も見つけました。コードからダンプしますが、ハンドルされていない例外ハンドラーからそれを行うと、Java は既に例外をキャッチしており、スタック トレース (および引数) は失われています。
残念ながら-XX:+HeapDumpOnOutOfMemoryError
、メモリ不足の例外のみであり、他のキャッチされていない例外ではありません。
これまでのところ、Google から抜け出すことができたのはこれだけです。現在、例外ブレークポイントを備えたアタッチされたデバッガーを使用していますが、処理された例外でも中断するため、非現実的であり、監視なしで使用することはできません。
【モチベーションアップ】
スタック トレースの引数とローカル変数を調べて、例外の原因を突き止めたいと考えています。通常はヌル参照の例外または失敗するアサーションであり、行番号から正確に何が問題なのかを常に推測できるとは限りません。C/C++ では、コアダンプ/ミニダンプを使用してクラッシュし、実際に何が原因でクラッシュしたかをさらに調べることに慣れています。