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

Langage Java Discussion :

[débutant] Parcours de liste, déboggage


Sujet :

Langage Java

  1. #1
    Membre averti
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Par défaut [débutant] Parcours de liste, déboggage
    Bonjour,
    J'ai une application java qui me permet de dessiner des figures géométriques et de générer des calculs à partir de ces figures ou d'une description symbolique de celle-ci.
    Les collections, hashtable, vector sont beaucoup utilisées.
    Les logs me permettent de voir qu'une liste est mal parcourue (mais je ne sais pas laquelle), conduisant à des erreurs :
    - je liste tous mes objets et j'imprime : à la fin j'ai un message d'erreur m'indiquant que l'objet est inconnu : je suppose que la méthode appelée appelle une fois de trop la fonction print.
    - Dans les dessins, si j'affiche dans chaque case le nom de la case, la dernière case n'est jamais affichée (mais elle est dessinée). Je suppose que dans ce cas là, la liste est mal parcourue et on ne va pas chercher le dernier élément.
    Ce ne sont que des suppositions, mais avec un débutant inside, difficile de savoir par où commencer pour pister ce pb...
    Si vous aviez des pistes ? (style regarder les appels sur les collections plus particulièrement, ou alors ça n''a rien à voir je pars dans le décor....)

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Montre-nous comment tu parcours tes collections ...

    (PS: Vector et Hashtable sont à remplacer respectivement par ArrayList et HashMap)

  3. #3
    Membre averti
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Par défaut
    @om : c'est à dire ? Est-ce que tu suggère d'aller voir les 50 et quelques parcours de collection pour voir celui qui est mal fait ?

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Pour parcourir une list par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List<String> list = ...
    for(String s : list) {
     
    }
    Là t'as pas de pb d'indices

  5. #5
    Membre averti
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Par défaut
    excuses moi mais je ne vois pas trop ou tu veux en venir.
    J'ai une appli à déboger de 23 et quelques mille ligne.
    J'ai une erreur que je suppose etre un décalage d'indice dans un parcours de liste. Je ne sais pas laquelle, car mon erreur se retrouve à plusieurs niveaux.
    Alors je reformule ma question, existe-t-il une méthode de débogage permettant de retrouver ce genre de problème (Autre que d'afficher tous les indices de toutes les listes impactées en espérant trouver la racine du problème avant deux mois)

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par titpuce
    excuses moi mais je ne vois pas trop ou tu veux en venir.
    J'ai une appli à déboger de 23 et quelques mille ligne.
    J'ai une erreur que je suppose etre un décalage d'indice dans un parcours de liste. Je ne sais pas laquelle, car mon erreur se retrouve à plusieurs niveaux.
    Alors je reformule ma question, existe-t-il une méthode de débogage permettant de retrouver ce genre de problème (Autre que d'afficher tous les indices de toutes les listes impactées en espérant trouver la racine du problème avant deux mois)
    Si tu comprends bien l'appli, et que tu observes un dépassement d'indice, ou un élément manquant quelque part, ça n'est pas dur de trouver à quel endroit chercher...

  7. #7
    Membre averti
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Par défaut
    @om je constate qu'il y a des valeurs manquantes, ou une erreur en fin de parcours. Je ne peux que supposer que c'est une erreur de parcours de liste.
    Après il y a peut etre des particularités entre les collections, les listes, les vecteurs (style un qui commence à 1 l'autre à 0) que je ne connais pas, et qui est la raison pour laquelle je viens poster ici.

  8. #8
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par titpuce
    @om je constate qu'il y a des valeurs manquantes, ou une erreur en fin de parcours. Je ne peux que supposer que c'est une erreur de parcours de liste.
    Après il y a peut etre des particularités entre les collections, les listes, les vecteurs (style un qui commence à 1 l'autre à 0) que je ne connais pas, et qui est la raison pour laquelle je viens poster ici.
    OK

    Mais bon, je pense qu'il faut un minimum de code, sinon on ne va (en tout cas moi) pas pouvoir t'aider...

  9. #9
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Citation Envoyé par ®om
    (PS: Vector et Hashtable sont à remplacer respectivement par ArrayList et HashMap)
    Je serai du même avis mais si ces classes sont utilisées pour leur synchronisations dans le cas d'une application multithreadé, ça peut se justifier.

    @titpuce, tu n'utilses pas un IDE et son débugger ?, si tu as autant de lignes que tu dis, ça peut être pratique de voir ce qu'il fait pour mieux situer le problème.

    Quant aux collections, elles commencent normalement à 0 comme indice.

    Tu as peut être beaucoup de code mais pour t'aider davantage, il nous faudrait le code d'une partie suspecte par exemple et/ou la trace des erreurs.

  10. #10
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par benwit
    Je serai du même avis mais si ces classes sont utilisées pour leur synchronisations dans le cas d'une application multithreadé, ça peut se justifier.
    Dans le cas d'une appli multithreadée, soit on gère les verrous à la main au bon endroit, soit on utilise Collections.synchronizedList(new ArrayList<String>()) par exemple, qui retourne une List<String> synchronisée.

  11. #11
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Je me suis mal exprimé, j'aurai du dire "ça peut se comprendre". J'ai vu des bouts de code qui utilisaient des Vectors parce qu'ils étaient synchronisés.
    Maintenant, c'est vrai qu'il y a de meilleures façons de faire (Faut t'il pour autant réécrire tout vieux code ?)

  12. #12
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par benwit
    Maintenant, c'est vrai qu'il y a de meilleures façons de faire (Faut t'il pour autant réécrire tout vieux code ?)
    Non, il ne faut pas réécrire tout vieux code, mais il faut au moins utiliser les bonnes choses dans les nouveaux codes (et pas copier sur les vieux codes)

  13. #13
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Citation Envoyé par benwit
    @titpuce, tu n'utilses pas un IDE et son débugger ?, si tu as autant de lignes que tu dis, ça peut être pratique de voir ce qu'il fait pour mieux situer le problème.
    Effectivement je commencerais par ca !
    Ca te permettrais de localiser l erreur et de remonter a sa source .

  14. #14
    Membre averti
    Inscrit en
    Août 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 46
    Par défaut
    Bonjour
    J'utilise Netbeans 5.5. Le débogage pas à pas ne donne pas toutes les indications, j'ai l'impression qu'il saute les étapes. Ne connaissant pas le code, je ne peux pas savoir lesquelles...
    Dans la mesure où mon erreur se retrouve à l'éxécution de plusieurs méthodes mais qu'il n'y a pas de lien apparent entre ces erreurs (mis à part le fait qu'à chaque fois j'ai une liste ou une collection), je ne suis pas plus avancée...
    Après je ne suis pas non plus une pro du débuggage sous netbeans, et il y a peut etre une petite astuce qui me permettrait de piéger le moment où je dépasse le compteur. Pour le moment je n'ai pas trouvé. Et mis à part faire tourner les 70 et quelques collections pour voir comment elles sont parcourues, je ne vois pas trop comment faire.

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/05/2006, 11h48
  2. [VB.NET] [Débutant] : tableau ou liste?
    Par alx3d dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/05/2006, 08h58
  3. [Débutant] VBA Excel : Liste déroulante
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/12/2005, 14h09
  4. [Débutant][JSP] récupération liste choix multiple
    Par Jovial dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/05/2004, 13h59
  5. Réponses: 3
    Dernier message: 09/01/2004, 14h37

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