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.
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.
J'ai eu le même message d'erreur dans Eclipse 3.4.1, SUN JVM1.6.0_07 connecté à Tomcat 6.0 (en mode débogage sur une autre machine, Sun JVM1.6.0_16, la connexion de débogage a fonctionné correctement).
Window --> Preferences --> Java --> Compiler --> Classfile Generation : "ajouter des attributs de numéro de ligne au fichier de classe généré" a été vérifié. J'ai fait un nettoyage, une recompilation. Je l'ai décoché, recompilé, coché, recompilé. Je me suis assuré que le projet utilisait bien les paramètres globaux. Toujours le même message.
Je suis passé à la construction par ant, en utilisant
<javac srcdir="./src/java" destdir="./bin" debug="true">
Toujours le même message.
Je n'ai pas trouvé la cause de ce message et pourquoi il ne disparaissait pas. Bien que cela semble avoir un rapport avec la session de débogage de Tomcat en cours d'exécution : lorsqu'elle est déconnectée, la recompilation résout le problème. Mais en connectant le débogueur à Tomcat ou en définissant de nouveaux points d'arrêt pendant une session de débogage connectée, il réapparaît.
Cependant, il s'est avéré le message était faux : J'ai effectivement pu déboguer et définir des points d'arrêt, avant et pendant le débogage ( javap -l a également montré les numéros de ligne). Alors ignorez-la :)
Ce qui précède n'a pas fonctionné pour moi. J'ai dû cliquer sur l'icône "Remove all Breakpoints" dans la vue Eclipse > Breakpoints, puis réinsérer les points d'arrêt. Cela a fonctionné.
J'ai fermé tous les autres projets, supprimé tous les points d'arrêt, effectué un changement aléatoire dans le fichier, nettoyé le projet, introduit à nouveau le point d'arrêt. Cela a fonctionné pour moi
Cela a réglé mon problème (j'avais la mauvaise version de jdk spécifiée dans la configuration de ant). Cela a résolu le problème, mais eclipse STILL m'a donné le message d'erreur. Assurez-vous donc d'essayer de déboguer votre code après avoir effectué cette modification - ne laissez pas le message d'erreur vous décourager.
Même si votre application n'est pas web, la solution est Ok, en faisant Installed JREs
par défaut JDK
au lieu de JRE
Pour Printemps Les questions connexes considèrent que dans certains cas, il génère des classes "sans numéros de ligne" ; par exemple, une @Service
classe annotée sans interface, ajoutez l'interface et vous pourrez déboguer. voir ici pour un exemple complet.
@Service("SkillService")
public class TestServiceWithoutInterface {
public void doSomething() {
System.out.println("Hello TestServiceWithoutInterface");
}
}
Le service ci-dessus aura une interface générée par spring qui causera des "numéros de ligne manquants". L'ajout d'une interface réelle résout le problème de génération :
public interface TestService {
void doSomething();
}
@Service("SkillService")
public class TestServiceImpl implements TestService {
public void doSomething() {
System.out.println("Hello TestServiceImpl");
}
}
J'ai la réponse à ce problème du côté du BlackBerry SDK : Pour une raison quelconque, peu importe le nombre de fois où j'ai modifié les options dans le compilateur, le fichier de paramètres sous-jacent n'a pas changé.
Regardez dans le dossier .settings de votre projet pour trouver un fichier appelé org.eclipse.jdt.core.prefs .
Vous pouvez y modifier les paramètres manuellement :
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
edit : Suite à cela, j'ai remarqué que parfois je peux ignorer l'alerte donnée par Eclipse, et il s'arrêtera toujours à l'endroit requis... de plus en plus curieux... Je mets cela dans le panier des choses que l'on apprend à gérer quand on travaille comme dev.
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.
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.
6 votes
Pour moi, c'était une mauvaise simulation, j'ai accidentellement simulé la classe que je testais. Peut-être que quelqu'un trouve cela pertinent.
1 votes
@hipokito Pouvez-vous m'expliquer ce que signifie se moquer d'une classe et comment le défaire ? Les autres solutions ne fonctionnent pas pour moi.
0 votes
@chandrajeet - Dans mon cas, c'est un simple passage du runtime référencé de jre à jdk/jre et une reconstruction complète qui ont résolu le problème.
0 votes
Bonjour, si vous créez votre build via ant alors ajoutez debug="on" dans <target name="compile". J'ai été confronté au même problème, mais cette option debug a résolu mon problème.