Объект объекта ObjectReference в JDI и JPDA
Вопрос
Очень конкретно, в JDI и Jpda. контекст, у меня есть следующие вопросы:
Почему
ObjectReference
не подвергает свой базовый объект? Это основано на некоторой спецификации? Все ли реализации, такие как проект Debug Eclipse, то же самое, что не подвергается основному объекту?Учитывая ситуацию, которую у вас есть
uniqueID()
отObjectReference
, есть ли способ разрешить основной объект из Сразу?Если нет до предыдущего вопроса, то какой лучший способ разрешить основной объект? Я должен добавить, что я знаком с тем, как
Value
можно получить изStackFrame
информация, но мне действительно нужно ссылка на объект не внутренние значения или структура полей.
Решение
Почему ObjectReference не подвергает свой основной объект?
Я предполагаю, что вы имеете в виду com.sun.jdi.ObjectReference
интерфейс. Если это так, это сочетание двух вещей:
На грани этого это не имеет смысла. ObjectReference находится в JVM, управляющий отладчиком, но соответствующий объект Java существует на целевой машине.
Предполагая, что он имеет смысл, то было бы плохо разоблачить фактические адреса PBJECT и содержимое памяти. Это позволило бы отладчику делать вещи для целевого JVM, который приведет к жестким авариям.
Учитывая ситуацию, которую у вас есть UniqueId () от ObjectReference, есть ли способ разрешить основной объект от JVM?
Нет.
Если нет до предыдущего вопроса, то какой лучший способ разрешить основной объект?
AFAIK, нет никакого способа сделать это, кроме написания собственного отладочного агента в C / C ++, используя интерфейс инструмента JVM и настроить цель JVM для запуска.