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