388 votes

Eclipse - Impossible d'installer un point d'arrêt en raison de l'absence d'attributs de numéro de ligne

J'obtiens cette étrange erreur dans Eclipse lorsque j'essaie de définir un point d'arrêt.

Unable to insert breakpoint Absent Line Number Information

J'ai coché la case des options du compilateur, mais sans succès.

0 votes

Pouvez-vous faire un javap -verbose sur le fichier de classe et coller l'information ici ? Voyez s'il y a vraiment un numéro de ligne.

3 votes

Salut yx, j'ai fait un javap sur cette classe. Il génère les numéros de ligne

0 votes

Bizarrement, je viens de rencontrer ce problème avec le plugin BlackBerry, Eclipse 3.5, rien à voir avec Tomcat. Et moi aussi, il s'arrête aux breakpoints, sauf pour l'un d'entre eux... si je trouve une réponse, je posterai.

0voto

PMorganCA Points 151

J'ai rencontré ce problème lorsque j'ai annoté une classe avec @ManagedBean (javax.annotation.ManagedBean). Le message d'avertissement est apparu lors de l'exécution de l'application nouvellement compilée sur JBoss EAP 6.2.0. L'ignorer et l'exécuter quand même n'a pas aidé - le point d'arrêt n'a jamais été atteint.

J'appelais ce bean en utilisant EL dans une page JSF. Maintenant... il est possible que @ManagedBean ne soit pas bon pour cela (je suis nouveau dans CDI). Lorsque j'ai changé mon annotation en @Model, mon bean s'est exécuté mais l'avertissement de point d'arrêt a également disparu et j'ai atteint le point d'arrêt comme prévu.

En résumé, il semble bien que l'annotation @ManagedBean ait perturbé la numérotation des lignes, qu'il s'agisse ou non de la mauvaise annotation à utiliser.

0voto

Gene Marin Points 434

Assurez-vous que le projet dans lequel l classe principale du runtime est, est le même projet dans lequel est la classe dans laquelle vous avez des points d'arrêt . Si ce n'est pas le cas, assurez-vous que les deux projets se trouvent dans le classpath de la configuration d'exécution, et affichez avant tous les pots et les dossiers de classe.

0voto

Amber Points 1836

J'ai eu le même problème avec un projet spécifique et j'ai essayé de réinitialiser les attributs de numéro de ligne dans Fenêtre->Préférences... Puis j'ai réalisé que chaque projet a ses propres paramètres pour les attributs de numéro de ligne. Cliquez avec le bouton droit de la souris sur le projet, allez dans les propriétés, choisissez JavaCompiler, et cochez la case "Ajouter les attributs de numéro de ligne...".

0voto

Mustafa Kemal Points 31

Si la solution ci-dessus ne fonctionne pas et que vous avez commencé à avoir ce problème après avoir fait une injection de spring bean, le problème peut être que vous n'avez pas utilisé d'interface pour la classe injectée. Essayer de faire l'injection avec une classe qui implémente une interface résoudrait le problème. Pour un exemple, suivez le lien : Problème de point d'arrêt impossible à installer pour la création de haricots

0voto

Witold Kaczurba Points 2815

J'ai eu un problème similaire sur un projet Spring MVC + Maven ; et j'ai passé 2 heures à essayer de comprendre pourquoi le dossier cible n'est pas mis à jour avec les classes contenant des informations sur les lignes.

Je vous suggère de tout nettoyer et de vous assurer que toutes les classes sont supprimées du dossier avant de procéder à toute construction.

  1. Assurez-vous que l'option "Ajouter des attributs de numéro de ligne aux fichiers de classe générés (utilisés par le débogueur)" est sélectionnée dans Propriétés du projet > Compilateur Java.
  2. Nettoyer tout le projet. . (Menu > Projet > Nettoyer...) Assurez-vous que le dossier cible est vide.
  3. Construire le projet (Menu > Projet > Construire le projet)
  4. Assurez-vous que les nouvelles classes sont générées dans votre répertoire cible.
  5. Exécutez Debug ; si vous utilisez un serveur Web, assurez-vous d'exécuter votre serveur Web en mode "Debug".

En cas de doute - si les fichiers .class compilés contiennent des numéros de ligne ou non - ouvrez les fichiers .class dans Eclipse. L'Eclipse décompilera les fichiers et vous dira si les numéros de ligne existent ou non.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X