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.

1voto

Garrafote Points 1

J'ai eu la même erreur avec JBoss 7.1.. Et j'ai fait la même chose que Zefiro. J'ai simplement ignoré l'erreur et j'ai pu placer des points d'arrêt normalement. Dans mon cas, je construisais en pensant à ant builder et voici ma tâche javac :

<javac
        srcdir="${src.dir}"
        destdir="${build.classes.dir}" 
        includeantruntime="false" 
        debug="${debug}"
        verbose="false"
        debuglevel="lines,vars,source"
        source="1.6"
        target="1.6">

        <!-- Sppressing warning for setting an older source without bootclasspath
             (see: https://blogs.oracle.com/darcy/entry/bootclasspath_older_source) -->
        <compilerarg value="-Xlint:-options"/>

        <classpath>
            <fileset dir="${lib.dir}" includes="*.jar" />
            <fileset dir="${jboss.lib.dir}" includes="**/*.jar" />
        </classpath>

    </javac>

1voto

Tommy Teo Points 11

J'ai eu le même problème, j'ai passé beaucoup de temps à chercher une solution mais ces solutions sont inutiles, donc j'ai étudié moi-même tous les cas, finalement j'ai trouvé le problème, c'est un conflit entre les versions de JDK. Voici les étapes à suivre pour résoudre le problème : 1. Supprimez toutes les versions de JDK et JRE, ne gardez qu'une seule version. 2. Définissez le système JAVA_HOME et le compilateur java dans Eclipse est le même. Dans certains cas, l'erreur ci-dessus ne disparaîtra pas, mais nous serons en mesure de fonctionner au modèle de débogage.

1voto

Jonathan Points 51

Une fois, j'ai rencontré la même erreur lorsque j'ai utilisé junit et Mockito, j'ai oublié d'ajouter @PrepareForTest pour une classe statique.

L'ajout du code ci-dessous a réglé mon problème.

@PrepareForTest({XXXXX.class})

Pas sûr que ce soit le même cas.

1voto

Andrew Points 959

Mon problème était que j'avais deux JAR et que j'essayais de remplacer l'un par l'autre en me basant sur son ordre dans l'arborescence. Java Build Path => Order & Export dans Eclipse, car l'un était destiné au débogage et l'autre non (le JAR de débogage étant le premier dans l'ordre). Lorsque je l'ai fait de cette façon, j'ai dû joindre manuellement une source.

J'ai essayé de supprimer le JAR de non-débogage et de placer le JAR de débogage dans ma base de données. \WEB -INF \lib\ le répertoire, le nettoyage, la construction, etc., et cela a fonctionné. Cette fois-ci (après avoir supprimé la source attachée), il me laissait automatiquement naviguer dans le code de débogage, sans avoir à attacher une source manuellement. Les points d'arrêt et le débogage ont également fonctionné.


Au cas où quelqu'un aurait encore des problèmes, j'ai également essayé toutes les solutions particulières mentionnées dans les autres réponses :

  • Décochez, appliquez et revérifiez. Add line number attributes...
  • Modification manuelle org.eclipse.jdt.core.prefs comme mentionné dans une autre réponse : https://stackoverflow.com/a/31588700/1599699
  • S'assurer que le JAR a été généré avec le débogage activé.
  • Changement du niveau de conformité du JDK de 1.6 à 1.7 (correspondant ainsi au JDK que j'utilisais).

J'ai également procédé à l'arrêt habituel du serveur (en m'assurant que java.exe est bien fermé...), à la suppression du fichier \build\ dans les deux projets, redémarrer Eclipse avec le paramètre -clean, recréer le JAR de débogage, rafraîchir, nettoyer et construire le projet avec le JAR de débogage, démarrer le serveur en mode débogage, publier/nettoyer et mettre des points d'arrêt.

1voto

Shrirang Kumbhar Points 152

J'étais confronté au même problème dans mon IDE eclipse. J'ai lu toutes les réponses à cette question et essayé presque tous les paramètres mentionnés, mais sans succès.

J'ai donc essayé de changer la librairie d'exécution du projet, qui était auparavant JRE - Java SE 1.8. Default runtime

J'ai essayé de changer le JRE en JDK et cela a fonctionné pour moi :

JDK selected

Voici les étapes à suivre pour passer de JRE à JDK :

  • Clic droit sur le projet

  • Cliquez sur Propriétés -> Chemin de construction de Java

  • Sélectionnez l'onglet "Bibliothèques".

  • Cliquez sur le bouton "Add Library". La fenêtre "Ajouter une bibliothèque" s'ouvre

  • Sélectionnez "JRE System Library" -> Cliquez sur le bouton "Next".

  • Sélectionnez "Alternate JRE".

  • Cliquez sur le bouton Installed JRE

  • Dans la nouvelle fenêtre, cliquez sur "Ajouter". Cela ouvrira une autre fenêtre "Ajouter JRE".

  • Sélectionnez "Standard VM". Cliquez sur Suivant.

  • Cliquez sur le bouton Annuaire.

  • Choisissez le chemin de votre répertoire d'installation "JDK" et cliquez sur ok. Puis cliquez sur Terminer.

  • Maintenant, vérifiez le nouveau "JDK" ajouté. Select on JDK

  • Supprimez tous les autres JRE installés de la liste (facultatif).

  • Appliquer-> OK

  • Sélectionnez "JDK" dans le menu déroulant alternatif JRE et cliquez sur "Terminer". Alternate JRE

  • Maintenant, dans la liste décrite ci-dessous, supprimez l'instance JRE Remove unwanted JRE

  • Cliquez sur Appliquer -> OK

Et tu es fait !

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