IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Java Discussion :

Debug - comment sortir d'une boucle


Sujet :

Eclipse Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut Debug - comment sortir d'une boucle
    Bonjour

    Je suis en mode debug et je debug le programme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (int i=0; i< 1000; i++)
            mafonction(i);
    J'entre dans la boucle je debug et au bout de la 3 eme itération je veux sortir de la boucle for. Comment faire?
    D'avance merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Bonjour,

    Tu veux stopper la boucle à une itération précise et passer à la suite ou tu veux simplement passer à la suite en laissant la boucle se finir normalement ?

    Si tu veux juste passer à la suite, il suffit de mettre un autre point d'arrêt.
    Si tu veux vraiment interrompre la boucle, il faut changer la valeur de 'i' pendant l'exécution pour que la condition de la boucle soit invalidée.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut
    Merci Laurent.

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Points : 165
    Points
    165
    Par défaut
    pas forcémment plus simple, mais tu as la commande run to line dans le menu run dans la perspective debug (ou alors tu places le cursuer sur la ligne apres la boucle et tu fais Ctrl + R.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut
    Re-bonjour,
    Je re-souleve le probleme car j'ai des problemes sur la 1 ere solution de Laurent.B et la solution de SQUAL.
    Je vous mets également 1 copie d'ecran.
    Si tu veux juste passer à la suite, il suffit de mettre un autre point d'arrêt
    En fait si je mets 1 autre point d’arrêt à l'instruction: System.out.println("FIN") alors quand je suis à 1 itération donnée et que je clique sur le bouton vert (resume), il me mets juste à l'itération d'apres et pas à l'instruction hors du boucle.

    tu places le curseur sur la ligne apres la boucle et tu fais Ctrl + R
    Même chose je passe à l'itération suivante et pas à l'instruction qui se trouve apres ma boucle.

    PS: le programme se trouve dans la capture d'ecran.


    Encore merci pour votre aide.
    Images attachées Images attachées  

  6. #6
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    A l'itération qui t'intéresse, il te suffit de changer la valeur de "i" dans la vue "Variables" (que l'on voit en haut à droite de ta capture d'écran). Tu mets comme valeur de "i" 100 (dans ce cas précis) en cliquant sur la valeur courante de "i" et en éditant la valeur. Puis, tu cliques sur "Resume".
    Voici la sortie sur la console que j'ai eu en stoppant à la première itération (avec le même code ainsi que les mêmes points d'arrêt):
    DEBUT
    100
    FIN
    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

  7. #7
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Il suffit de désactiver ton point d'arrêt une fois que tu as ton nombre d'itération atteint !
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut
    A l'itération qui t'intéresse, il te suffit de changer la valeur de "i" dans la vue "Variables" (que l'on voit en haut à droite de ta capture d'écran). Tu mets comme valeur de "i" 100 (dans ce cas précis) en cliquant sur la valeur courante de "i" et en éditant la valeur. Puis, tu cliques sur "Resume".
    Voici la sortie sur la console que j'ai eu en stoppant à la première itération (avec le même code ainsi que les mêmes points d'arrêt):
    Je suis 1 peu decu . Je pensais qu'il existait une solution sans devoir modifier la valeur de i. Alors si je comprends bien dans tous les cas il faut modifier la variable "i" en la passant à la valeur de la derniere itération (ici à la valeur 100).

    Merci tout de même pour vos réponses.

  9. #9
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Citation Envoyé par mafanta Voir le message
    Je pensais qu'il existait une solution sans devoir modifier la valeur de i. Alors si je comprends bien dans tous les cas il faut modifier la variable "i" en la passant à la valeur de la derniere itération (ici à la valeur 100).
    Si, tu peux conditionner ton point d'arrêt en l'éditant et en lui ajoutant la clause qui t'intéresse...
    Mais bon, quel est ton souci avec le fait de modifier la valeur de i ? Le mode débug n'est pas franchement fait pour s'exécuter à répétition...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut
    Mais bon, quel est ton souci avec le fait de modifier la valeur de i ?
    En réalité je n'ai pas de soucis particulier. C'est que pour moi on peut rapidement en 1 passe sortir d'un bloc .
    En étant obligé d'aller sur la vue variable , de double cliquer sur la variable et de le changer pour mettre la valeur maximal (qu'il faut aussi connaitre), je trouve que c'est 1 peu long.

    Bref, en gros ce n'est pas du tout grave, c'est simplement que je m'attendais à 1 truc comme dans l'IDE de Microsoft (VB).

  11. #11
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Points : 165
    Points
    165
    Par défaut
    Je suis souvent dans ce cas et c'est vrai que c'est assez énervant à force.
    Je viens d'essayer avec ton code source de la capture, voici comment je procède : je met un point d’arrêt sur la ligne à l’intérieur de la boucle, j’exécute, le debugger s’arrête à cette ligne, ensuite, dans la vue breakpoints, je désactive le point d’arrêt en le décochant, je place mon curseur sur la ligne System.out.println("FIN"); ensuite je fais Ctrl + R et ça marche.

    (Je suis sous eclipse Indigo 3.7)

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut
    Je viens d'essayer avec ton code source de la capture, voici comment je procède : je met un point d’arrêt sur la ligne à l’intérieur de la boucle, j’exécute, le debugger s’arrête à cette ligne, ensuite, dans la vue breakpoints, je désactive le point d’arrêt en le décochant, je place mon curseur sur la ligne System.out.println("FIN"); ensuite je fais Ctrl + R et ça marche.
    SUPER SQUAL!!!

    Perso je trouve ta solution cool sachant qu'il y'a juste 1 clic à rajouter sur la vue breakpoints.
    Merci.

  13. #13
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    C'est la solution que tu attendais
    Tu peux y arriver sans aller dans la vue Breakpoint. Tu fais clic droit sur ton point d'arrêt et "Disable Breakpoint".
    Ça marche aussi bien...
    Pas de questions technique par MP, les forums sont là pour ça.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut
    Tu peux y arriver sans aller dans la vue Breakpoint. Tu fais clic droit sur ton point d'arrêt et "Disable Breakpoint".
    Ça marche aussi bien...
    encore mieux...
    En fait j'y ai pensé quand j'ai juste testé la méthode de SQUAL.

    Merci à tous.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut
    derniere chose avant de clore

    Ca serait vraiment mieux d'avoir un raccourci clavier qui pourrait faire le "Disable Breakpoint" . Dans ce cas tout le débuggage serait fait sans souris.

    PS: Franchement je m'ennui souvent lors des debuggage long en faisant des gestes répétitifs en boucle (ca me fatigue la main). C'est pourquoi je cherchais le minimum de commande possible et si possible via le clavier...

    Encore merci.

  16. #16
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Tu as le raccourci Ctrl+Shift+B qui te permet de supprimer un point d'arrêt. Je ne crois pas qu'il y ait de raccourci clavier pour griser un point d'arrêt.
    Pas de questions technique par MP, les forums sont là pour ça.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 200
    Points : 67
    Points
    67
    Par défaut
    Merci Gueritarish .
    Toutes ces infos seront utiles.
    encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment sortir d'une boucle qui dure trop?
    Par gaston11 dans le forum Débuter
    Réponses: 8
    Dernier message: 07/01/2013, 23h34
  2. Réponses: 4
    Dernier message: 26/11/2011, 12h42
  3. [PHP 5.3] Comment sortir d'une boucle for en PHP ?
    Par beegees dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2009, 20h36
  4. comment sortir d'une boucle while d'un Iterator
    Par solawe dans le forum Langage
    Réponses: 6
    Dernier message: 18/03/2008, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo