Durante o desenvolvimento normal, você não deve estar preocupado com a VM utilizada por cada instância do editor visual. Os usuários avançados, porém, podem configurar o workbench para que todas as mensagens enviadas a System.out ou System.err da VM sejam gravadas no arquivo .log no diretório .metadata no seu espaço de trabalho.
A VM (Máquina Virtual) utilizada para executar os Java beans não é a mesma VM na qual o workbench está em execução. Uma VM separada é criada para cada instância do editor visual. O caminho de classe dessa VM é configurado para ser as entradas no caminho de construção Java para o projeto. Se o caminho de construção Java for alterado enquanto o editor visual estiver aberto, todos os editores abertos deverão ser fechados e abertos novamente para refletir o caminho de construção atualizado.
Quando o workbench é iniciado, ele pode receber uma opção -DEBUG que aponta para um arquivo de texto:
-DEBUG file:/c:/temp/options.txt
O arquivo de depuração contém entradas que são lidas pelo visual editor. Se o arquivo contiver a linha a seguir, todas as mensagens enviadas a System.out ou System.err serão mostradas no console:
org.eclipse.jem.proxy/remote/debug/vmtraceout=true
Além de ter a saída do console mostrada a partir da VM utilizada pelo editor visual, você pode iniciá-lo no modo de depuração e executar a depuração remota. Esse cenário não é otimizado e pode ser alterado em futuras versões do editor visual. Porém, ele é documentado no caso de você precisar executar a depuração dos Java beans no tempo do design. Para executar a depuração remota, serão necessários dois workbenchs em execução: um com os Java beans que você deseja depurar e outro que possa executar depuração remota com base no soquete. O segundo workbench pode estar em execução na mesma máquina ou em uma máquina diferente. Para ativar a depuração da VM do editor visual, o arquivo -DEBUG deve conter a linha:
org.eclipse.jem.proxy/remote/debug/debugvm=true
Toda vez que o editor visual iniciar uma VM, ele perguntará se você deseja que ela seja iniciada no modo de depuração ou não.
O diálogo anterior serve para quando a classe HelloFrame.java no projeto Teste for aberta com o editor visual. Se você selecionar Sim ou digitar Y e pressionar Enter no console, a VM será iniciada em modo suspenso com -Xdebug utilizando um conector de soquete. Uma porta livre é alocada. Em seguida, é informado a você o número.
A próxima etapa é conectar um depurador remoto à porta número 7078. A instância do workbench que está executando o editor visual é suspensa enquanto o depurador remoto é conectado, de forma que você deve utilizar um depurador de outro aplicativo. Se o outro aplicativo for outra instância do workbench, você poderá iniciar a depuração remota utilizando a opção de menu Depurar > Depurar e criando uma nova configuração do Aplicativo Java Remoto.
Digite o número da porta que foi gravado anteriormente para stdout, neste caso, 7078. Se o depurador estiver em uma máquina diferente, no campo Host você deverá digitar o endereço IP da máquina que está executando o workbench que está sendo depurado. Para iniciar o depurador remoto, clique em Depurar e digite y no console stdin do workbench que está sendo depurado.
Além de ser solicitado que você depure a VM utilizada por cada instância do editor visual, aparecerão mensagens solicitando que você depure o projeto em si:
Deseja iniciar a vm remota (Projeto (Teste)-Beaninfo) no modo de depuração? (Digite Y ou N):
Isso é para a VM utilizada para introspecção e na qual java.beans.Introspector é executado e é possível diferenciar da VM do editor visual porque não especifica um nome de arquivo de origem Java específico. Essa VM é iniciada na primeira vez que quaisquer informações de bean forem requeridas para um Java bean dentro de um projeto e permanece ativa se o projeto permanecer aberto. A depuração desse projeto permite percorrer e analisar qualquer código nas classes BeanInfo conforme a introspecção dos Java beans vai sendo realizada. A introspecção ocorre uma vez para cada classe de Java bean para cada projeto no qual ela é utilizada. O resultado é mantido em um cache para ajudar no desempenho. Se, a qualquer momento, for necessário limpar o cache de informações de BeanInfo mantidas para um projeto, você poderá fechar e abrir o projeto a partir de seu menu pop-up.