4
votes

Créer un point d'arrêt lorsqu'une méthode spécifique est appelée

Je travaille sur un ancien code Java (dans Eclipse). Cela fonctionne bien (sa sortie est correcte); cependant, il imprime une ligne vierge supplémentaire. Je veux trouver cette déclaration et la supprimer, mais il y a beaucoup de lignes System.out.print dans le code et je ne peux pas les vérifier une par une. Existe-t-il un moyen de demander au débogueur Eclipse de se mettre en pause lorsque System.out.print est appelé? C'est similaire à mettre des points d'arrêt sur chaque System.out.print dans le code (et le débogueur s'arrêtera lorsqu'il atteindra ces lignes).


3 commentaires

Je pense que c'est impossible ..


Je ne sais pas comment les débogueurs fonctionnent entièrement, mais s'ils peuvent exécuter des codes étape par étape (ou bytecode par bytecode), il semble possible de spécifier une méthode (ou sa signature) et de définir un déclencheur après son appel.


dans une idée comme xcode , le point d'arrêt symbolique est ce que vous voulez. stackoverflow.com/questions/13806200/... . Mais je ne sais pas si l'éclipse a de telles caractéristiques.


4 Réponses :


0
votes

Je ne pense pas que ce soit possible. Mais pour résoudre votre problème, vous pouvez voir l'instruction System.out.println au-dessus de la ligne vide et y ajouter un point d'arrêt.

De cette façon, vous pourrez accéder plus rapidement à la ligne.


0 commentaires

2
votes

Je pense que définir simplement un point d'arrêt sur la méthode d'impression System.out # devrait fonctionner correctement.
code source jdk:

public void println(String x) {
    synchronized (this) {
        print(x);  // break point here
        newLine();
    }
}


0 commentaires

0
votes

Vous ne pouvez pas rechercher dans le code la valeur de la ligne? Je veux dire, quelque chose comme ctrl + f -> system.out.println ("') // ou ce qu'il imprime. Et puis commentez toutes les lignes résultantes.

Je sais que c'est peut-être nul, mais parfois la solution est plus simple qu'il n'y paraît.


0 commentaires

0
votes

Je pense que vous devez utiliser un point d'arrêt conditionnel. Vous pouvez vérifier ceci et cela peut également aider.


0 commentaires