정상 개발 동안 각 Visual Editor 인스턴스가 사용하는 VM을 고려할 필요는 없습니다. 그러나 고급 사용자는 VM의 System.out 또는 System.err로 전송되는 모든 메시지가 작업공간의 .metadata 디렉토리에 있는 .log 파일에 기록되도록 Workbench를 구성할 수 있습니다.
Java Bean을 실행하는 데 사용되는 VM(가상 시스템)은 Workbench가 실행되는 VM과는 다릅니다. 별도의 VM은 Visual Editor의 각 인스턴스마다 작성됩니다. 이 VM의 클래스 경로는 프로젝트의 Java 빌드 경로의 항목이 되도록 설정됩니다. Visual Editor가 열리지만 Java 빌드 경로가 변경되면 열린 모든 편집기를 닫은 후 다시 열어서 갱신된 빌드 경로를 반영해야 합니다.
Workbench가 시작되면 텍스트 파일을 지정하는 -DEBUG 옵션을 제공할 수 있습니다.
-DEBUG file:/c:/temp/options.txt
디버그 파일은 Visual Editor가 읽는 항목을 포함합니다. 파일에 다음 행이 포함되면 System.out 또는 System.err로 전송되는 모든 메시지는 콘솔에 표시됩니다.
org.eclipse.jem.proxy/debug/vmtraceout=true
콘솔 출력을 Visual Editor가 사용하는 VM에서 표시되도록 하고 콘솔 출력을 디버그 모드로 시작하고 원격 디버깅을 수행할 수도 있습니다. 이 시나리오는 최적화되지 않았으며 나중 버전의 Visual Editor에서 변경될 수 있습니다. 그러나 디자인 타임에 Java Bean의 디버깅을 수행해야 하는 경우는 문서화되어 있습니다. 원격 디버깅을 수행하려면 디버그하려는 Java Bean이 있는 Workbench 및 소켓 기반 원격 디버깅을 수행할 수 있는 Workbench의 두 Workbench를 실행 중이어야 합니다. 두 번째 Workbench는 동일한 시스템에서 실행할 수도 있고 다른 시스템에서 실행할 수도 있습니다. Visual Editor의 VM 디버깅을 사용하려면 -DEBUG 파일에 다음 행을 포함해야 합니다.
org.eclipse.jem.proxy/debug/debugvm=true
Visual Editor는 VM을 시작할 때마다 디버그 모드로 시작할지 여부를 사용자에게 묻습니다. 이 메시지는 대화 상자에 기록되거나 -DEBUG 파일이 org.eclipse.jem.proxy/debug/ioconsole=true 항목을 포함하는 경우에는 System.out에 기록됩니다.
메시지가 System.out에 기록되면 Y 또는 N을 입력하고 System.in을 기다릴 것인지 묻습니다.
Do you want to start the remote vm (Project (Test)-VM for HelloFrame.java) in debug mode? (Enter Y or N):
이전 대화 상자는 Test 프로젝트의 HelloFrame.java 클래스가 Visual Editor를 통해 열리는 경우에 적용됩니다. Yes를 선택하거나 Y를 입력하고 콘솔에서 Enter를 누르면 소켓 커넥터를 사용하는 -Xdebug를 사용하여 VM이 일시중단 모드로 시작됩니다. 사용 가능한 포트가 할당됩니다. 다음으로 항목이 설명됩니다.
메시지가 System.out에 기록되면 System.in에 입력되기를 기다립니다.
디버거를 포트 번호 7078에 접속해야 합니다. 디버거가 접속되면 'y'를 입력하십시오. 디버거가 접속되지 않으면 프로그램이 제대로 계속되지 않습니다. 디버거를 연결할 수 없으면 'n'을 누르십시오. 이렇게 해도 오류가 계속 발생하지만 보다 잘 정리됩니다. 'y' 또는 'n'을 입력하십시오.
다음 단계는 원격 디버거를 포트 번호 7078에 접속하는 것입니다. Visual Editor를 실행 중인 Workbench 인스턴스는 원격 디버거가 접속하는 동안 일시중단되므로 다른 응용프로그램으로부터 디버거를 사용해야 합니다. 다른 응용프로그램이 Workbench의 또 다른 인스턴스인 경우 메뉴 옵션 디버그 > 디버그를 사용하고 새 원격 Java 응용프로그램 구성을 작성하여 원격 디버깅을 시작할 수 있습니다.
이전에 stdout에 기록된 포트 번호를 입력하십시오(이 경우 7078). 디버거가 서로 다른 시스템에 있으면 호스트 필드에 디버그 중인 Workbench를 실행하는 시스템의 IP 주소를 입력해야 합니다. 원격 디버거를 시작하려면 디버그를 클릭한 다음 디버그되는 Workbench의 stdin 콘솔에 y를 입력하십시오.
Visual Editor의 각 인스턴스가 사용하는 VM을 디버그하도록 프롬프트되고 프로젝트 자체를 디버그하는지 묻는 메시지도 표시됩니다.
Do you want to start the remote vm (Project (Test)-Beaninfo) in debug mode? (Enter Y or N):
이 메시지는 자체 검사에 사용되는 VM에 적용되고 java.beans.Introspector는 VM에서 실행되며 특정 Java 소스 파일 이름을 지정하지 않으므로 Visual Editor의 VM과 구별될 수 있습니다. 이 VM은 프로젝트 내의 Java Bean에 Bean 정보가 처음 필요할 때 시작되고 프로젝트가 열려 있는 동안 활성으로 남아 있습니다. 이 프로젝트를 디버깅하여 Java Bean이 자체 검사 중일 때 BeanInfo 클래스의 코드대로 진행하고 분석할 수 있습니다. 자체 검사를 사용하는 각 프로젝트의 Java Bean 클래스마다 자체 검사가 한 번 수행됩니다. 성능에 도움이 되도록 결과는 캐시에 보관됩니다. 보관된 프로젝트의 BeanInfo 정보의 캐시를 지워야 할 경우 팝업 메뉴에서 프로젝트의 닫기 및 열기를 수행할 수 있습니다.