Não é possível definir o ponto de interrupção de Java no Intellij IDEA

Estou tentando colocar pontos de interrupção nos códigos-fonte do GoogleAppEngine (SDK 1.7.0), mas o IDEA Ultimate (11.0.2) continua me avisando. Warning: No executable code found at line 482 in class com.google.appengine.api.memcache.AsyncMemcacheServiceImpl .

Recebo essa mensagem de erro quando executo o código de testes de unidade e inicio o servidor de desenvolvimento.

É bastante anônimo. De qualquer forma, minhas fonts estão em um diretório externo (relativo ao home da IDEA e ao home do projeto), e meus arquivos jar estão sob o diretório lib do Appengine SDK.

Meus arquivos jar são adicionados como biblioteca de projetos ao módulo e minhas fonts são anexadas a essa biblioteca. Eu estava brincando com as dependencies do módulo também, mas sem qualquer sorte. Finalmente, decidi colocar essa biblioteca no escopo Compile, mas foi uma má ideia, já que o SDK fornece esses jars em tempo de execução, então decidi voltar ao escopo Fornecido.

Eu também joguei com a opção de exportação na guia dependencies do módulo, mas acho que isso é irrelevante, de acordo com a ajuda da web , a exportação só é importante quando você tem módulos dependentes e deseja disponibilizar sua biblioteca nesses módulos.

De qualquer forma, essa questão surgiu há 4 anos também. Então, eu estou querendo saber agora se é realmente tão difícil resolver esse problema?

Estou muito desapontado agora. Eu não tive nenhum problema com a IDEA até agora … Eu vi que este problema surgiu para outras pessoas também, então isso não é único, eu acho.

Qualquer ajuda é apreciada.


Eu editei minha pergunta devido aos meus experimentos de javap abaixo: Parece que as classs e as fonts NÃO estão fora de sincronia. Eu verifiquei a revisão relacionada ao 1.7.0 do SVN, e estou usando o SDK 1.7.0, então eles não devem estar completamente fora de sincronia.

Eu tive problemas semelhantes e várias tentativas foram aplicadas. Abaixo estão os meus passos habituais:

  1. Se você estiver usando dependencies do Maven, vá para Maven Projects -> refresh
  2. Se isso não funcionar, tente o menu superior -> Build -> Rebuild Project
  3. Se isso ainda não funcionar, tente o menu superior -> Arquivo -> Invalidar Cache / Restart
  4. Se isso ainda não funcionar, então $ CATALINA_BASE / bin / catalina.sh pare e inicie

Depois disso, geralmente cobre 99% dos problemas. Caso contrário, provavelmente você terá que examinar algumas outras possibilidades.

Eu tive problema semelhante no Intellij. Não consegui colocar breakpoint em um dos snippet de código, mudei o numero da linha do código e então consegui colocar breakpoint. Parece um bug no intellij

Eu encontrei alguns outros casos em que as pessoas relataram que IDEA diz “Nenhum código executável encontrado”. Um padrão comum é que eles estavam tentando depurar o código que foi construído sem informações de debugging. Verifique se você está compilando com o conjunto sinalizador “-g” (ou equivalente).

A questão é bastante antiga, mas achei que minha experiência poderia ajudar alguém no futuro. No meu caso, eu estava tentando depurar o código que não foi compilado com informações de debugging. Eu estou usando maven em que o arquivo pom pai original antes da modificação parecia algo como abaixo na seção de compilation.

    org.apache.maven.plugins maven-compiler-plugin 2.1  ${javaCompilerVersion} ${javaCompilerVersion} UTF-8      

Eu mudei a seção acima para fazer parecer abaixo.

    org.apache.maven.plugins maven-compiler-plugin 2.1  ${javaCompilerVersion} ${javaCompilerVersion} UTF-8 true lines,vars,source      

Observe os elementos e . O elemento debuglevel pode usar qualquer combinação dos três argumentos separados por vírgulas.

Depois de compilar com essa mudança, finalmente consegui colocar break points no IDEA.

Eu tive um problema semelhante e foi causado por um erro na minha configuração do Tomcat, sob a guia Implantação, a opção “Implantar na boot do servidor”. Eu acidentalmente mudei para um projeto muito parecido com “: war exploded”. Quando eu mudei de volta, funcionou bem.

Por favor, certifique-se de não ter executado o Proguard. Isso me ajudou.

Menu -> Arquivo -> Invalidar Cache / Reiniciar

Isso funcionou para mim no IntelliJ 13.0.2

Se você estiver usando alguns servidores, eles entrarão no “modo de baixa memory”, o que significa que eles não serão depurados para você, independentemente de quais opções ou caches você invalidar.

Você deve parar seu servidor, aumentar as configurações de memory nas opções que são passadas para o java e reiniciar o servidor. Verifique os registros para garantir que você não receba um relatório como “executando no modo de pouca memory”.

Teve o mesmo problema, descobri que a versão do código no servidor e a que estou depurando são diferentes. Depois de sincronizar o código, o problema foi resolvido.

A essência do problema é que a JVM executa um arquivo de class (class simples ou uma class carregada do jar do caminho de class) que NÃO CORRESP a fonte usada pelo depurador. Uma vez que isso seja entendido, a solução é simples: certifique-se de que a fonte represente a class que está sendo executada. Assim, para corrigir o problema, você pode atualizar as fonts para classs, etc.

Consegui corrigir esse problema recompilando a class em questão: Build -> Recompile (filename.java)

No meu caso eu matei todos os processos em execução no dispositivo e desconectei e reconectei-o.

Eu tive o mesmo problema usando a configuração de debugging no meu caso Tomcat. Eu tentei tudo acima, mas nada. quando acabei de reconfigurar o Tomcat (debugging> editar configuração> remover o tomcat> adicioná-lo novamente do zero) finalmente estava funcionando 🙂

Verifique o seu espaço no disco e liberte alguma memory. Se você estiver com pouco espaço em disco, mesmo que seu servidor não esteja no “modo de pouca memory”, o intelliJ não alocará o espaço para armazenar em cache as classs necessárias para a debugging. Como resultado, não permitirá que você defina o ponto de interrupção.

Reinicie o seu PC. Isso resolveu meu caso. o simples é o melhor..