2013-09-26 6 views
2

제 masterthesis에서 디버깅하는 동안 변수를 시각화하기위한 Eclipse 플러그인을 작성하고 있습니다. 나는 IJavaObject, IJavaType 및 IJavaValue 등에 대한 편안한 액세스를 위해 사용자 정의 '크롤러'를 만드는 데 많은 노력을 기울였습니다. 문제는 메모리에서 실제 기본 객체를 가져올 가능성을 보지 못했지만 IJavaObject 래퍼 일뿐입니다.Eclipse 디버깅 플러그인 : JDT의 IJavaObject에서 기본 Java 객체에 액세스하십시오.

예. java.awt.Color가 있으면 IJavaObject를 가져 와서 내 크롤러로 메소드를 호출 할 수 있습니다 (JDT의 sendMessage를 통해). 따라서 단일 R, G 및 B 값을 쿼리 할 수 ​​있으며 내 자신의 Color 개체를 만들고 색상을 직접 표시 할 수 있습니다. 그러나 java.awt.Image의 경우 어딘가에서 직접 그릴 수 있습니다. 예를 들어이 작업을 수행 할 수 없습니다. IJavaObject 및 내 크롤러에 대한 액세스 권한을 가지며 일부 메소드 (btw는 기본 유형을 매개 변수로 허용하는 메소드 만)를 호출 할 수 있으며 개인 필드를 쿼리 할 수도 있습니다. 그러나 폭, 높이 또는 ImageObservers가 아닌 실제 Image 객체가 필요합니다.

그래서 짧게 : IJavaObject의 실제 기본 객체에 액세스 할 수 있습니까?

미리 감사드립니다.

+0

당신이 어떤 진전이에 의미를 (아마도 그래픽 처리)? 나는 실제로 그런 도구를 사용하는 _love_! 나는 (게임 개발자이자 그래픽 애호가이기 때문에) 스스로 대신 무언가를 쓰려고 생각했지만 OpenGL을 사용했다. 기본적으로 더 좋은'toString' :) – Philip

+0

1 년 전에 내 논문을 성공적으로 마쳤다. 도구는 물론 완벽하지는 않지만 사용할 수 있습니다 (Eclipse 4.2, Java 7). 특별한 부분 만 필요하다면, 당신에게 나의 논문의 관련 부분이나 구체적인 내용을 보내 줄 수 있습니다. 관심 있다면 Stackoverflow에서 오후 할 수 있습니까? – MrCube

답변

2

실제 개체는 디버그 코드와 다른 JVM에 있습니다. 즉, 액세스 할 수있는 방법이 없습니다. 객체가 기본 객체에 대한 참조를 포함 할 수 있습니다 최악의 경우

이 만 JVM 개체에서 실행됩니다.

+0

정말 아무런 방법이 없나요? 아니면 훨씬 더 복잡합니까? 결국 이미지를 표시 할 수있는 유일한 방법은 모든 픽셀 값을 읽고 완전히 새로운 이미지를 만드는 것입니다. ( – MrCube

+1

이미지에 픽셀이 포함되어 있으면 AWT 'Image'에 대해서는 알지 못하지만 SWT 'Image'는 네이티브 그래픽 핸들에 대한 참조를 포함하고 있습니다. 전혀 할 수없는 것입니다. –

+0

Ok. 슬프지만 사실이지만, 나는 적어도 그 색상을 만들 수있었습니다;) – MrCube