Partage
  • Partager sur Facebook
  • Partager sur Twitter

Utiliser le debugger

Dans Code::Blocks

    19 avril 2006 à 17:17:11

    Salut,

    Voilà je me suis lancé dans la rédaction d'un programme assez compliqué... Lors de la compilation, il ne m'affiche aucune erreure, mais lors de l'application (du run...) il me dit "A fait une erreur, patati patata, envoyer, ne pas envoyer..."Donc je me doute bien que j'ai fais un erreur... Mais ou?? o_O

    Je me doute aussi qu'il faut utiliser le debugger, mais je ne sais pas comment... J'ai un peu été voir sur ce site où on explique que le debugger est très bien fait, mais bon si on sait pas l'utiliser :-°

    je crois que tout se passe dans cette fenêtre

    Image utilisateur

    mais je ne sais pas très bien ce qu'il faut faire... Je n'ai même pas trouvé comment rajouter un "truc" (je préfère dire ça plutôt que des conneries) dans la partie droite de la fenêtre...

    Voilà voilou, j'espère que j'ai tout dit.

    Merci d'avance à ceux qui m'aideront ;)

    PS: En fait, je cherche un debugger genre avec PHP, qu'il me dise où et quelle est l'erreur...
    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2006 à 17:48:30

      En fait il faut faire F8 : ca compile et ca t'affiche le return de ton main. (pratique par exemple si tu as mis if(machin) exit(9) : le debugger te dira exited 9).
      Ensuite il te donne une liste de... choses que je ne comprends jamais lol.
      Mais ce que tu veux "comme en PHP" je crois que c'est à la compilation que tu l'as, et c'est tout. Les autres erreurs, c'est par exemple si tu essayes d'accéder à de la mémoire qui ne t'es pas réservée : Windows (ou Linux ou ton OS hein ^^ ) est pas content et ferme tout!
      Donc je pense pas qu'on puisse retrouver exactement ou es l'erreur, à part en cherchant dans ce type d'erreur.
      Enfin je suis aussi un zéro lol, et j'ai jamais vu ca :D
      voila le meilleur moyen ca doit etre de chercher :-°
      • Partager sur Facebook
      • Partager sur Twitter
        19 avril 2006 à 17:54:25

        Est-ce qu'il n'y a pas moyen qu'il me dise au moins à quelle ligne il fait l'erreur??
        • Partager sur Facebook
        • Partager sur Twitter
          19 avril 2006 à 17:59:18

          Eh bien je ne pense pas, puisque pour lui le code est bon si tu accèdes bien à une adresse mémoire. Or c'est ton OS qui va tout quitter, parce que cette mémoire n'appartient pas au prog!
          Et l'OS ne peut pas non plus te donner le numéro de la ligne, puisque c'est du code machine!

          Essaye d'isoler des parties du prog en les passant commentaire et dès que tu n'as plus de problème, ton erreur est la.
          Enfin moi je fais comme ca je sais pas si c'est le meiux ^^
          • Partager sur Facebook
          • Partager sur Twitter
            19 avril 2006 à 20:46:09

            Yeah ce message t'as pas fini de le voir : débordement de mémoire. Soit tu as fait un mauvais malloc (le plus fréquent) ou oublié de free, soit tu as mal ouvert un fichier etc.

            Essaye de localiser ton erreur en faisant des printf de partout. :p Si si ça marche, tu peux très facilement voir quelle fonctions foire ainsi.

            ++ et bonne chance.
            • Partager sur Facebook
            • Partager sur Twitter
              19 avril 2006 à 21:14:50

              Citation : mleg

              Yeah ce message t'as pas fini de le voir : débordement de mémoire. Soit tu as fait un mauvais malloc (le plus fréquent) ou oublié de free, soit tu as mal ouvert un fichier etc.

              Essaye de localiser ton erreur en faisant des printf de partout. :p Si si ça marche, tu peux très facilement voir quelle fonctions foire ainsi.

              ++ et bonne chance.



              J'ai une autre méthode "barbare", ça s'appelle la technique du "while(1);". Ça consiste à déplacer un while(1); dans le code (c/c, ctrl+ X pour couper) dés que l'on arrive au while(1); le programme s'arrête brutalement mais ne signal pas d'erreur. Si jamais on a dépassé le code qui plante, le programme plante (et se ferme.. ou renvoie une "FATAL ERROR", un ecran bleu.. etc :lol: ) On redescend ainsi vers les fonctions primaires jusqu'à trouver l'endroit exacte où l'erreur se produit. Avec un peu d'habitude et de méthode, même pour les gros programmes, cette technique barbare est efficace (j'ai pu tester :honte: )
              • Partager sur Facebook
              • Partager sur Twitter
              Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
                19 avril 2006 à 21:20:33

                Ouai mais là c'est carrément de la sauvagerie. :lol:
                • Partager sur Facebook
                • Partager sur Twitter

                Utiliser le debugger

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown