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

Code::Blocks Discussion :

Plantage du déboggueur


Sujet :

Code::Blocks

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Plantage du déboggueur
    Bonjour,

    Je rencontre actuellement un gros problème avec Code::Blocks et GDB. En effet, depuis un moment, lorsque j'essaye de lancer mon projet avec le déboggueur, gdb lance mon programme... puis gdb.exe plante.

    Par contre, lorsque je lance directement gdb en console, celui-ci lance correctement mon programme et ne plante pas. C'est donc uniquement lorsqu'il est lancé à travers Code::Blocks

    Vu que j'ai remarqué que gdb ne plante pas sur un programme trivial, j'ai donc essayé d'isoler le problème. J'ai donc créé un nouveau Build Target et ai progressivement rajouté mes fichiers .cpp jusqu'à en trouver un qui fasse planter gdb. J'ai ensuite essayé de trouver le morceau de code problématique.

    Le problème est le suivant:

    "font_manager.h"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
     
    class OBJ_Font
    {
        public:
            OBJ_Font();
            sf::Font* getStream();
        private:
            sf::Font m_font;
    };
     
    ...
    "font_manager.cpp"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
     
    OBJ_Font::OBJ_Font()
    {
    }
     
    ...

    Si je commente l'implémentation de "OBJ_Font::OBJ_Font()", alors gdb fonctionne. Si ce code est présent dans "font_manager.cpp", alors gdb plante.

    J'ai donc du mal à comprendre comment un constructeur vide peut avoir cet effet? (Je précise bien sûr que le but in fine n'est pas d'avoir un constructeur vide, il contient normalement du code que j'ai enlevé car n'étant pas source d'erreur)

    Quelqu'un aurait-il une idée de ce que je fais mal ou de ce que je pourrais faire pour faire de nouveau marcher GDB dans Code::Blocks?


    Merci d'avance!


    PS: Petite info supplémentaire, ce code n'est jamais exécuté à l'exécution. En effet ma fonction main n'est que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int main() {
        while (true)
        {
            cout << "Hello World!" << endl;
        }
    }

  2. #2
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Août 2008
    Messages : 148
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    Le problème est sûrement dû au fait que ta version de MinGW n'est pas la même que celle qui a servit à compiler la version de SFML que tu possèdes.
    Deux possibilités pour résoudre le problème, soit tu télécharges la version appropriée de MinGW (il me semble que Laurent la fournit sur le site officiel), soit tu compiles toi-même la SFML.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Effectivement, c'est une piste à laquelle je n'avais pas du tout pensé, merci beaucoup!

    Lorsque je commente ce qui touche à sf::Font, tout semble marcher, prouvant bien qu'il y a un lien avec mon utilisation de SFML2.

    Malheureusement je compile déjà moi-même SMFL2. Pour en être certain, j'ai à l'instant compilé et installé la dernière version dans les mêmes conditions que mon projet, cependant gdb crash toujours si la ligne "sf::Font m_font;" est présente.


    Après recherche sur les forums de SFML2, il s'agit d'un problème déjà mentionné, SFML et gdb sur Windows ne font apparemment pas bon ménage en shared libs. La "solution" est donc de lier statiquement les librairies de déboguage, là tout semble bien se passer.

    Problème résolu donc, merci encore!

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

Discussions similaires

  1. Plantage IIS ...
    Par rgarnier dans le forum XMLRAD
    Réponses: 20
    Dernier message: 28/10/2003, 10h54
  2. Plantage de Delphi 7
    Par Andry dans le forum EDI
    Réponses: 3
    Dernier message: 04/09/2003, 16h36
  3. Réponses: 7
    Dernier message: 20/08/2003, 10h33
  4. plantage a la deconnexion du client
    Par travail dans le forum 4D
    Réponses: 3
    Dernier message: 05/06/2003, 13h39
  5. [Kylix] Plantage IDE Kylix3/Mandrake 9.0
    Par OmicroN dans le forum EDI
    Réponses: 3
    Dernier message: 28/01/2003, 23h04

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