ObjectReference objeto que subyace en JDI y JPDA
Pregunta
Muy específicamente, en JDI y JPDA contexto, tengo las siguientes preguntas:
-
¿Por qué
ObjectReference
no expone su objeto subyacente? ¿Se basa en alguna especificación? ¿Son todas las implementaciones como Eclipse depuración Proyecto el mismo que no exponga el objeto subyacente? -
Teniendo en cuenta la situación que tiene el
uniqueID()
deObjectReference
, ¿hay alguna manera de resolver el objeto subyacente de JVM -
Si la respuesta a la pregunta anterior, ¿cuál es la mejor manera de resolver el objeto subyacente? Debo añadir que estoy familiarizado con la forma de
Value
se pueden obtener a partir de informaciónStackFrame
, pero realmente necesito la referencia al objeto no los valores o la estructura de los campos internos.
Solución
¿Por qué ObjectReference no exponga su objeto subyacente?
Estoy asumiendo que usted se refiere a la interfaz com.sun.jdi.ObjectReference
. Si es así, es una combinación de dos cosas:
-
En vista de ello, sería no tener sentido. El ObjectReference está en la JVM ejecuta el depurador, pero existe el objeto Java correspondiente en la máquina de destino.
-
Si se asume que lo hizo tiene sentido, entonces sería una mala cosa para exponer la pbject direcciones y contenido de la memoria real. Esto permitiría que el depurador para hacer las cosas a la meta JVM que daría lugar a choques duros.
Teniendo en cuenta la situación que tiene el IDunico () desde ObjectReference, ¿hay alguna manera de resolver el objeto subyacente de la JVM?
No.
Si la respuesta a la pregunta anterior, ¿cuál es la mejor manera de resolver el objeto subyacente?
Que yo sepa, no hay manera de hacer esto, aparte de escribir su propio agente de depuración en C / C ++ utilizando la interfaz de la herramienta de JVM y configurar el destino de JVM para ejecutarlo.