Estou tentando atirar em um JUnit. No código-fonte, configurei o ponto de interrupção em dois lugares: 1) em uma linha onde um membro estático é inicializado 2) a primeira linha de um dos casos de teste.
O depurador para na linha de inicialização do campo estático. Mas isso não para no caso de teste. Não importa onde eu defina o ponto de interrupção no caso de teste, o depurador não para por aí. Tenho certeza de que o caso de teste foi executado, pois posso ver as mensagens de log que adicionei no log.
Qualquer ajuda seria muito apreciada.
Estou usando o Eclipse Galileo e o iniciador JUnit4.
Respostas:
Isso pode estar relacionado a um dos bugs no JDK 6 Atualização 14, conforme indicado nas notas de lançamento do JDK 6 atualização 15 .
Se esse for realmente o problema, você deve migrar para uma versão superior do JDK (isso não é garantia, já que foram lançadas correções contra 6u16, 6u18 e 7b1 ). A melhor aposta é usar o sinalizador -XX: + UseParallelGC. Aumentar o tamanho do tamanho mínimo e máximo do heap, para atrasar o primeiro GC, traz um alívio temporário.
A propósito, use este relatório de bug no Eclipse para rastrear como os outros estão se saindo.
fonte
A correção pode ser tão simples quanto clicar em executar / ignorar todos os pontos de interrupção. Funcionou para mim.
fonte
Certifique-se, em Run> Debug Configurations, que 'Stop in main' está selecionado, se aplicável à sua situação.
fonte
Normalmente, quando isso acontece comigo (raro, mas acontece) significa que o código que está sendo executado é diferente do código no editor. Ocorrerá de tempos em tempos para o Eclipse que as classes construídas e o código no editor estão fora de sincronia. Quando isso acontece, recebo todo tipo de comportamento estranho do depurador (depurando linhas vazias, pulando linhas de códigos, etc.).
Reiniciar o Eclipse, limpar todos os projetos e reconstruir tudo geralmente esclarece as coisas. Eu também tinha os plug-ins Maven (versões mais antigas ... há um tempo não tinham) que tendiam a fazer isso também.
Caso contrário, pode ser um bug, talvez aquele que Vineet declarou,
Espero que isto ajude
fonte
Você pode ter ignorado acidentalmente todos os pontos de interrupção na barra de ferramentas do Eclipse. Para corrigir isso, vá para Eclipse -> Executar -> Ignorar todos os pontos de interrupção.
fonte
Projeto -> Limpar pareceu funcionar para mim no JRE 8
fonte
Para que o depurador funcione com o remoto, os arquivos java .class devem ser compilados junto com as informações de depuração. Se a opção " -g: none " for passada para o compilador, o arquivo de classe não terá as informações necessárias e, portanto, o depurador não será capaz de combinar pontos de interrupção no código-fonte com aquela classe no remoto. Enquanto isso, se os arquivos jars / class forem ofuscados , eles também não terão nenhuma informação de depuração. De acordo com suas respostas, provavelmente este não é o seu caso, mas essas informações podem ser úteis para outras pessoas que enfrentam o mesmo problema.
fonte
No meu caso, o problema era que eu não tinha a visualização de depuração aberta na perspectiva de depuração, então:
1 - Certifique-se de ter aberto a perspectiva de depuração:
2 - Certifique-se de ter aberto a visualização de depuração:
fonte
Remova todos os pontos de interrupção e adicione-os novamente.
fonte
Para JDK7, execute-> Configurações de Depuração, marque "Manter JUnit em execução após uma execução de teste durante a depuração".
fonte
Aconteceu comigo uma vez, quando desmarquei "Executar> Compilar automaticamente" e esqueci de verificar novamente.
fonte
Certifique-se de declarar o pacote no topo. No meu código bacana, isso para nos pontos de interrupção:
Isso não para nos pontos de interrupção:
fonte
Para remover os pontos de interrupção :
fonte
Verifique também se os pontos de interrupção em outras linhas funcionam, pode ser um bug no depurador. Eu tive um problema com o depurador Eclipse onde colocar um ponto de interrupção em uma atribuição booleana cujo código estava na próxima linha não funcionou. Eu relatei isso aqui , mas colocá-lo na linha anterior ou seguinte funcionou.
fonte
Se nada funcionar-
fonte
Outro possível problema é que a porta do depurador pode estar bloqueada pelo firewall. Por exemplo, eu estava usando o mule anypoint studio (v 5.4.3). A porta do depurador padrão é 6666. Quando um fluxo é executado, ele não para no ponto de interrupção. quando mudei a porta para outra (por exemplo, 8099), funcionou bem.
fonte
Acesse
Right click->Debug Configuration
e verifique se muitas instâncias de depuração foram criadas. Meu problema foi resolvido quando excluí várias instâncias de depuração da configuração e comecei a depurar recentemente.fonte
Se você estiver no Eclipse,
Clique com o botão direito na pasta do seu projeto em "Package Explorer".
Vá para Fonte -> Limpe e escolha seu projeto.
Isso limpará qualquer bagunça e seu ponto de interrupção deve funcionar agora.
fonte
Criar um novo espaço de trabalho funcionou para mim.
fonte
No meu caso, tive vários projetos no mesmo espaço de trabalho. O arquivo java que eu estava tentando depurar estava presente em mais de um projeto com o mesmo pacote.
Eu não precisava do outro projeto, então simplesmente fechei os projetos não relacionados (ou remova o arquivo do projeto não relacionado).
fonte
Um comentário adicional sobre a resposta de Vineet Reynolds.
Eu descobri que eu tinha que definir
-XX:+UseParallelGC
emeclipse.ini
Eu configuro os argumentos da máquina virtual (vm) da seguinte maneira
que resolveu o problema.
fonte
Isto é o que funciona para mim:
Tive que colocar o endereço do meu servidor local na configuração do PHP Server assim:
Nota : esse endereço é o que eu configuro no meu arquivo .conf do Apache .
Nota : o único breakpoint que estava funcionando era o 'Break at first line', depois disso, os breakpoints não funcionaram.
Nota : verifique seu xdebug propriedades do no arquivo php.ini e remova os que achar que não são necessários.
fonte