Bonjour.
Je cherche � comprendre pourquoi mon programme pose probl�me � gdb. La compilation se d�roule sans erreur et le programme s'ex�cute normalement, mais gdb me renvoie un "Debugger finished with status 1" et les points d'arr�t ne fonctionnent pas.
classe.hpp
classe.cpp
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #ifndef CLASSE_HPP #define CLASSE_HPP #include <vector> const int array[] = {1, 2, 3, 4}; const std::vector<int> vect (array, array + 4); class MaClasse { MaClasse(); ~MaClasse(); std::vector<int>* pVect; }; #endif //CLASSE_HPP
main.cpp
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 #include "classe.hpp" MaClasse::MaClasse() { pVect = new std::vector<int>(4); } MaClasse::~MaClasse() { delete pVect; }
Les sources originales ont �t� "all�g�es" pour �tre pr�sent�es sur le forum, ce qui explique l'inutilit� des variables globales.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 #include <iostream> #include "classe.hpp" int main() { std::cout << "Un simple test..." << std::endl; return 0; }
Le probl�me disparait si je regroupe tout le code dans un m�me fichier. M�me chose si je supprime les deux variables globales (array et vect dans classe.hpp). Ou bien encore en modifiant l'allocation dynamique dans le constructeur :
Voici la copie de la console de gdb :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 pVect = new std::vector<int>(4); // erreur pVect = new std::vector<int>; // ok
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Building to ensure sources are up-to-date Build succeeded Selecting target: Debug Adding source dir: E:\developpement\CodeBlocks\projet\vecttest\ Adding source dir: E:\developpement\CodeBlocks\projet\vecttest\ Adding file: bin\Debug\vecttest.exe Starting debugger: done Registered new type: wxString Registered new type: STL String Registered new type: STL Vector Setting breakpoints Debugger name and version: GNU gdb 6.8 Child process PID: 3060 Debugger finished with status 1
J'ai remarqu� que le log d�taill� de gdb se termin� par un message inhabituel. A toute fin utile, j'en fournis les derni�res lignes :
J'utilise gdb 6.8 avec code::blocks � jour, le tout sous XP.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 > run gdb: win32_init_thread_list This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. [New thread 3252.0x914]
Le probl�me vient-il de mon code ou d'une mauvaise configuration de mingw32? Si quelqu'un peut m'apporter quelques �claircissements, je suis preneur parce que l�, je s�che.
Merci d'avance.
Partager