Как работает Eclipse / IDEA / и т.д.отладчик получить информацию о значениях локальной переменной и посмотреть значения выражений? - PullRequest
3 голосов
/ 23 мая 2010

Я всегда думал, что вариабалы отображаются в ячейки стека после компиляции исходного кода Java; Кроме того, они могут включать информацию об именах переменных и их области действия в файлах классов, но это не обязательно AFAIK.

Вопрос в том, как мои Eclipse / IDEA IDE позволяют мне устанавливать выражение наблюдения, содержащее имя локальной переменной? Мне трудно понять:)

1 Ответ

3 голосов
/ 23 мая 2010

Все эти IDE основывают свои сервисы отладки на архитектуре отладчика платформы JavaTM (JPDA) .
Точнее, все они используют интерфейс инструмента виртуальной машины Java (JVM TI) , который заменил JDK5 на экспериментальный JVMPI (интерфейс профилирования виртуальной машины Java).

JVMTI включает в себя функцию Наблюдаемое поле и функцию SetFieldModificationWatch .

Но это не включает в себя локальную переменную : на самом деле уже давно открыт RFE: ошибка 4228507 .
Таким образом, в случае локальной переменной, есть вероятность, что используется какой-то BCI ( Инструментарий с байт-кодом ) (как в TPTP Eclipse-модуле ).

...