次の機能を備えたJVMの現在の状態のスナップショットを取得できる何かが(Javaの世界に)存在するかどうか疑問に思っていました:
- 例外がスローされている間に実行してください。
- ローカル変数、メソッドの引数などをキャプチャします。
- ソースコードの状況をIDEで抽出または再現するために使用できる便利なファイルに入れます。
最初の 2 つの機能が必要です (3 つ目の機能はすばらしいでしょう)。また、本番環境での使用に適している必要があります (したがって、デバッガーについてはありません)。
これを尋ねる前に、私は WWW を (可能な限り) 検索し、いくつかの指針を見つけました。
- Cajoon Interceptor : Dzone の投稿で述べたように、3 つの要件を満たすパッシブ JVM エージェントです。しかし、これには 2 つの欠点があります。料金を支払わなければならないことと、サイトがダウンしていることです (支払う機会がない可能性があります)。
- AviCode Intercept Studio : Cajoon の .NET に相当するもの。いくつかの洞察を与えるだけです。
- JavaFrame : わかりました、ツイートですが、問題ないように見える JVM エージェントのソース コード (MIT ライセンスに基づく) を含む利用可能な SVN リポジトリを指しています (試してみます)。
それで、多分私は存在しない解決策を探していますか?緊急ではありませんが、私はあるプロジェクトについてこのアイデアを思いつきました。この「未知の」(?) パスを探索して、何か現実のものを得ることができれば素晴らしいと思います。
JVM エージェントであることは明らかなようです (たとえば、JVMTI からの例外イベント)。
最後に、ウィキペディアの例外処理の記事から次の段落を強調します。
Java や .NET などのランタイム エンジン環境には、ランタイム エンジンに接続するツールが存在し、対象の例外が発生するたびに、例外がスローされた時点でメモリに存在していたデバッグ情報を記録します (コール スタックとヒープ)。値)。これらのツールは、自動例外処理またはエラー インターセプト ツールと呼ばれ、例外の「根本原因」情報を提供します。
それがアイデアです。誰かが私に洞察を与えてくれることを願っています。あるいは、将来、誰かがこの謙虚な投稿に触発されることを願っています:)
ありがとう!