Frage

Ganz konkret in JDI und JPDA Kontext, ich habe folgende Fragen:

  • Warum ObjectReference aussetzt nicht seine Aufgabe zugrunde? Ist es auf einigen Spezifikation basiert? Debug-Projekt sind alle Implementierungen wie Eclipse die gleichen, die nicht das zugrunde liegende Objekt aussetzen?

  • In Anbetracht der Situation, dass Sie die uniqueID() von ObjectReference haben, ist es eine Möglichkeit, die zugrunde liegende Objekt von JVM

  • zu lösen
  • Wenn nicht auf die vorherige Frage, was ist dann der beste Weg ist, um die zugrunde liegende Aufgabe zu lösen? Ich sollte hinzufügen, dass ich bin vertraut mit, wie Value die aus StackFrame Informationen erhalten werden, aber ich wirklich brauchen die Objektreferenz nicht die internen Werte oder die Struktur der Felder.

War es hilfreich?

Lösung

Warum Object nicht seine Aufgabe zugrunde, aussetzen?

Ich gehe davon aus, dass Sie auf die com.sun.jdi.ObjectReference Schnittstelle beziehen. Wenn ja, es ist eine Kombination von zwei Dingen:

  • Auf dem Gesicht von ihm, wäre es nicht sinnvoll. Die Object ist in der JVM den Debugger ausgeführt wird, aber das entsprechende Java-Objekt existiert auf dem Zielcomputer.

  • Unter der Annahme, dass es einen Sinn hat, dann wäre es eine schlechte Sache sein, die tatsächlichen pbject Adressen und Speicherinhalte zu belichten. Dies ermöglicht es der Debugger Dinge an das Ziel JVM zu tun, die zu harten Abstürzen führen würden.

In Anbetracht der Situation, dass Sie die uniqueID () von Object haben, ist es eine Möglichkeit, die zugrunde liegende Objekt von JVM zu lösen?

Nein.

Wenn nicht auf die vorherige Frage, was ist dann der beste Weg, um das darunter liegende Objekt zu lösen?

AFAIK, gibt es keine Möglichkeit, dies zu tun, abgesehen von Ihrem eigenen Debug-Agenten in C / C ++ zu schreiben mit der JVM Tool Interface und die Konfiguration das Ziel JVM um es auszuführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top