Domanda

Molto particolare, nel JDI e JPDA contesto, ho le seguenti domande:

  • Perché ObjectReference non espone il suo oggetto sottostante? E 'basato su alcune specifiche? Sono tutte le implementazioni come Eclipse Debug del progetto stesso che non esporre l'oggetto sottostante?

  • In considerazione della situazione che si ha la uniqueID() da ObjectReference, c'è un modo per risolvere l'oggetto sottostante da JVM

  • Se no alla domanda precedente, allora qual è il modo migliore per risolvere l'oggetto sottostante? Vorrei aggiungere che io sono a conoscenza di come di Value possono essere ottenute dalle informazioni StackFrame, ma ho davvero bisogno di il riferimento all'oggetto non i valori o struttura dei campi interni.

È stato utile?

Soluzione

  

Perché ObjectReference non esporre il suo oggetto sottostante?

Io parto dal presupposto che ci si riferisce all'interfaccia com.sun.jdi.ObjectReference. Se è così, si tratta di una combinazione di due cose:

  • Sulla faccia di esso, non avrebbe senso. L'ObjectReference è nella JVM esegue il debugger, ma l'oggetto Java corrispondente esiste sul computer di destinazione.

  • Supponendo che aveva senso, allora sarebbe una brutta cosa per esporre l'attuale indirizzi pbject e il contenuto della memoria. Ciò consentirebbe al debugger di fare le cose al bersaglio JVM che avrebbe portato di crash del disco.

  

In considerazione della situazione che si ha l'uniqueID () da ObjectReference, c'è qualche modo per risolvere l'oggetto sottostante dalla JVM?

No.

  

Se no alla domanda precedente, allora qual è il modo migliore per risolvere l'oggetto sottostante?

Per quanto ne sappia, non v'è alcun modo per fare questo, oltre a scrivere il proprio agente di debug in C / C ++ utilizzando l'interfaccia JVM strumento e la configurazione del bersaglio JVM per eseguirlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top