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"
"font_manager.cpp"
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; }; ...
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; } }
Partager