6

を使用して現在のスタックトレースを取得できますThread.currentThread().getStackTrace()が、呼び出しに関係するクラスのみが表示されます。コール トレースに関係するオブジェクト インスタンスを取得することは可能ですか? たぶん、ヒープからオブジェクトを取得できるライブラリのようなものでしょうか?

スタック トレースを要求しているオブジェクトを間接的に作成した Spring Bean にトレース バックする必要があるという問題があります。

更新 Javaにこれのための組み込みツールがない場合、実行時にこれを実行できる組み込み可能なライブラリを探しています。

4

3 に答える 3

2

それは非常に興味深いアイデアですが、残念ながら全体として不可能です。不可能です。

UPD:答えが「いいえ」である理由の1つは、可能であれば、作成されたすべてのオブジェクトへの参照のリストが存在する必要があるという事実です。ただし、この場合、JavaGCはまったく機能しません。

于 2013-01-15T12:20:49.880 に答える
0

特定のメソッドで使用されるオブジェクトの値を表示するには、Eclipseデバッガーを試してください。プログラムを一時停止する行にブレークポイントを設定します。

于 2013-01-15T14:31:09.430 に答える
0

housemdを試すことができます。これはエンジニア@alibaba によって開発されており、taobao.com などの本番環境でも安全に使用できます。

その機能は次のとおりです。

Display object field value
Output invocation stack trace

以下は、スクリーンショットの例です。 ここに画像の説明を入力

于 2013-01-15T14:12:18.293 に答える