2013-09-26 1 views
2

Для моего мастер-теста Я пишу плагин Eclipse для визуализации переменных во время отладки. Я приложил много усилий для создания пользовательских «сканеров» для удобного доступа к IJavaObject, IJavaType и IJavaValue и т. Д. Проблема в том, что я не видел возможности получить реальный базовый объект в памяти, а только обертки IJavaObject.Плагин отладки Eclipse: доступ к базовому Java-объекту из IJavaObject of JDT

E.g. если у меня есть java.awt.Color, я могу получить IJavaObject и вызвать методы с помощью моего искателя (так через неуклюжие sendMessage JDT). Поэтому я могу запросить одиночные значения R, G и B, построил свой собственный объект Color и может напрямую показать цвет. Но когда дело доходит до java.awt.Image, я хочу прямо рисовать где-то, например, я не могу этого сделать. Я имею доступ к IJavaObject и моему искателю и могу вызывать некоторые методы (только для тех, которые принимают примитивные типы в качестве параметров) и даже запрашивать частные поля, но мне нужен реальный объект Image, а не только его ширина, высота или ImageObservers.

Итак, вкратце: Есть ли возможность доступа к реальному базовому объекту объекта IJavaObject?

Заранее спасибо.

+0

Сделали вы какой-либо прогресс в этом? Я бы на самом деле пытался использовать такой инструмент! Я подумывал о том, чтобы написать что-то для себя, но с OpenGL вместо этого (так как я и разработчик игр, и энтузиаст графики). В основном просто лучший 'toString' :) – Philip

+0

Я успешно закончил свою диссертацию год назад. Инструмент, конечно, не идеален, но может быть использован (Eclipse 4.2, Java 7). Я мог бы прислать вам источники, соответствующие части моего тезиса или что-то конкретное, если вам нужна только специальная часть. Можете ли вы побывать на Stackoverflow, если хотите? – MrCube

ответ

2

Реальный объект находится в другом JVM от кода отладки, что означает, что нет доступа к нему.

В худшем случае объект может содержать ссылки на собственные объекты (возможно, графические ручки) они имеют смысл только в JVM объект запущен.

+0

Так что действительно нет способа или это намного сложнее? Это означает, что единственная возможность отображать изображение - это как-то прочитать все значения пикселей и создать совершенно новое изображение для этого :( – MrCube

+1

Если изображение содержит пиксели. Я не знаю об AWT 'Image', но SWT 'Image' просто содержит ссылку на собственный графический дескриптор, который вы вообще ничего не можете сделать. –

+0

Хорошо. Звучит грустно, но правда. По крайней мере мне удалось создать цвета;) – MrCube

Смежные вопросы