質問

非常に具体的には、JDIと JPDA コンテキストでは、次の質問があります。

  • なぜ ObjectReference その基礎となるオブジェクトは公開しませんか?いくつかの仕様に基づいていますか? Eclipse Debugプロジェクトなどのすべての実装は、基礎となるオブジェクトを公開しないのと同じですか?

  • あなたが持っている状況を考慮して uniqueID() から ObjectReference, 、基礎となるオブジェクトをから解決する方法はありますか JVM?

  • 前の質問に違反しない場合、基礎となるオブジェクトを解決する最良の方法は何ですか?私はその方法に精通していると付け加えるべきです Valueから取得できます StackFrame 情報、しかし私は本当に必要です オブジェクト参照 フィールドの内部値や構造ではありません。

役に立ちましたか?

解決

ObjectReferenceが基礎となるオブジェクトを公開しないのはなぜですか?

私はあなたが言及していると仮定しています com.sun.jdi.ObjectReference インターフェース。もしそうなら、それは2つのことの組み合わせです:

  • それに直面して、それは意味をなさないでしょう。オブジェクトはデバッガーを実行しているJVMにありますが、対応するJavaオブジェクトはターゲットマシンに存在します。

  • それが理にかなっていると仮定すると、実際のpbjectアドレスとメモリの内容を公開するのは悪いことです。これにより、デバッガーはターゲットJVMに物事を行うことができ、これによりハードクラッシュにつながります。

ObjectReferenceから一意の()があるという状況を考慮して、JVMから基礎となるオブジェクトを解決する方法はありますか?

いいえ。

前の質問に違反しない場合、基礎となるオブジェクトを解決する最良の方法は何ですか?

AFAIK、JVMツールインターフェイスを使用してC / C ++で独自のデバッグエージェントを作成し、ターゲットJVMを実行するように構成することを除けば、これを行う方法はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top