Вопрос

Очень конкретно, в 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 для запуска.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top