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() de ObjectReference, ¿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ón StackFrame, pero realmente necesito la referencia al objeto no los valores o la estructura de los campos internos.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top