2010-07-20 13 views
32

Hay un objeto ID se muestra cerca del valor del objeto en eclipse Durante la depuración.ID de objeto Java en jvm

Por ejemplo: 28332 es un ID de objeto de sesión. Este ID no es un código hash ni System.identityHashCode.

¿Alguien sabe - cómo obtener ESTE ID de objeto?

Respuesta

26

Supongo que tienen internamente un IdentityHashMap<Object, Integer>, asignando un entero único (pero sin sentido) por objeto. Esto debería ser interno para el depurador de eclipse (no es una identificación especial que tienen los objetos), ¿estás preguntando cómo llegar a eso?

Editar: Me gustaría establecer un punto de interrupción como esto (nota que no estoy muy versado en Eclipse):

  • que tendría un punto de interrupción inicial (como el que se utiliza para tomar la captura de pantalla), e imprima el System.identityHashCode(object) del objeto que me interesa.
  • Entonces crearía un punto de interrupción usando la condición System.identityHashCode(object) == <whatever number you saw at the previous step>. Sería muy raro que esto se detuviera en el objeto equivocado.

O si el objeto que le interesa en cuenta una representación adecuada toString() se puede utilizar, también se podría tratar de que en lugar de System.identityHashCode(object). En todos los casos, no tiene que confiar para eclipsar la identificación de objeto interno, sino capturar tal "id" (o casi) que puede derivar del objeto mismo.

+2

En general, estoy depurando la aplicación y me gustaría recopilar algo de información sobre los objetos algunas veces durante el proceso. Para detenerme en el punto de interrupción y obtener información sobre la ruta del objeto a través de las funciones ... – Gorbush

+3

+1 Creo esto es correcto, los números parecen asignados y rastreados internamente por el depurador Eclipse, siendo más fáciles de leer y reconocer que los identificadores de objetos JVM reales. – skaffman

+1

Yo también creo que provienen de http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/jdk/api/jpda/jdi/com/sun/jdi/ObjectReference.html#uniqueID%28 % 29 implementación por depurador Eclipse de hecho. – Redlab

Cuestiones relacionadas