Je poste sur ce newsgroup car j'ai un bug bizarre dans une de mes classes,
et je ne comprend pas pourquoi.
J'espere que vous pourrez m'aider...
J'ai un programme utilisant une librairie que j'ai créé qui fonctionnait
correctement jusqu'a maintenant.
J'ai voulu ajouter une variable dans la définition d'une de mes classes, et
je n'y arrive pas, il plante a l'execution, sans meme l'utiliser dans le
.cpp.
J'ai fait plusieurs essais, et quelque soit le type de la variable, int,
float, objet... avec l'importe quel nom, j'ai un plantage a l'execution à
l'adresse 0x0.
Je ne cromprend pas du tout pourquoi...
Donc je me pose plusieurs questions :
- est ce que ca vient de ma librairie ? La classe en question herite d'une
classe définit dans la librairie.
- est ce que ca vient de ma classe? j'ai rien de particulier, je l'ai relu
des dizaines de fois...
- est ce que ca vient des paramètres de mon projet? je suis obligé de mettre
en 'debogage multithread' sinon, ca ne fonctionne pas... et je ne sais pas
pourquoi non plus...
- est ce que c un bug du compilo ? je suis sous vs.net.
Je comprend vraiment pas, j'enleve un 'int toto', ca fonctionne, je le
remet, ca plante...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Arnaud Meurgues
Regis Ramillien wrote:
J'ai voulu ajouter une variable dans la définition d'une de mes classes, et je n'y arrive pas, il plante a l'execution, sans meme l'utiliser dans le .cpp.
Et il plante à quel moment ?
-- Arnaud (Supprimez les geneurs pour me répondre)
Regis Ramillien wrote:
J'ai voulu ajouter une variable dans la définition d'une de mes classes, et
je n'y arrive pas, il plante a l'execution, sans meme l'utiliser dans le
.cpp.
Et il plante à quel moment ?
--
Arnaud
(Supprimez les geneurs pour me répondre)
J'ai voulu ajouter une variable dans la définition d'une de mes classes, et je n'y arrive pas, il plante a l'execution, sans meme l'utiliser dans le .cpp.
Et il plante à quel moment ?
-- Arnaud (Supprimez les geneurs pour me répondre)
regis Ramillien
Désolé, j'ai dit une bétise, il ne plante, ca c'est un ancien bug ;) En fait, la librairie que j'ai faite permet de gérer des fenetre et controles en opengl. Lorsque je lance le programme normalement, il m'affiche bien une fenetre avec mes controles dedans et tout (et j'appuie sur un bouton 'close' pour le fermer. Mais lorsque je rajoute un 'int toto' dans la déclaration de ma classe principale (la fenetre qui gere tout), le programme se lance et se termine tout de suite, sans rien afficher... alors que theoriquement, le fait de rajouter une variable ne devrait rien changer... Cela dit, j'ai une autre question, du coup, lorsque je met des breakpoints dans mon programme, le compilo me met des '?' a l'interieur du cercle rouge du breakpoint et ne s'y arrete jamais. Je pense que ca vient des paramètres du projet, mais comme dit plus haut, j'y connait rien, j'ai bien essayé de gratouiller (de mettre l'option '/debug', de lui donner un nom de fichier pour la base), mais rien n'y fait... Si vous pouviez aider un pauvre petit developpeur qui s'y perd...
merci ;)
Régis
Désolé, j'ai dit une bétise, il ne plante, ca c'est un ancien bug ;)
En fait, la librairie que j'ai faite permet de gérer des fenetre et
controles en opengl.
Lorsque je lance le programme normalement, il m'affiche bien une fenetre
avec mes controles dedans et tout (et j'appuie sur un bouton 'close' pour le
fermer.
Mais lorsque je rajoute un 'int toto' dans la déclaration de ma classe
principale (la fenetre qui gere tout), le programme se lance et se termine
tout de suite, sans rien afficher... alors que theoriquement, le fait de
rajouter une variable ne devrait rien changer...
Cela dit, j'ai une autre question, du coup, lorsque je met des breakpoints
dans mon programme, le compilo me met des '?' a l'interieur du cercle rouge
du breakpoint et ne s'y arrete jamais. Je pense que ca vient des paramètres
du projet, mais comme dit plus haut, j'y connait rien, j'ai bien essayé de
gratouiller (de mettre l'option '/debug', de lui donner un nom de fichier
pour la base), mais rien n'y fait...
Si vous pouviez aider un pauvre petit developpeur qui s'y perd...
Désolé, j'ai dit une bétise, il ne plante, ca c'est un ancien bug ;) En fait, la librairie que j'ai faite permet de gérer des fenetre et controles en opengl. Lorsque je lance le programme normalement, il m'affiche bien une fenetre avec mes controles dedans et tout (et j'appuie sur un bouton 'close' pour le fermer. Mais lorsque je rajoute un 'int toto' dans la déclaration de ma classe principale (la fenetre qui gere tout), le programme se lance et se termine tout de suite, sans rien afficher... alors que theoriquement, le fait de rajouter une variable ne devrait rien changer... Cela dit, j'ai une autre question, du coup, lorsque je met des breakpoints dans mon programme, le compilo me met des '?' a l'interieur du cercle rouge du breakpoint et ne s'y arrete jamais. Je pense que ca vient des paramètres du projet, mais comme dit plus haut, j'y connait rien, j'ai bien essayé de gratouiller (de mettre l'option '/debug', de lui donner un nom de fichier pour la base), mais rien n'y fait... Si vous pouviez aider un pauvre petit developpeur qui s'y perd...
merci ;)
Régis
Marc Boyer
Regis Ramillien wrote:
Bonjour a tous,
Je poste sur ce newsgroup car j'ai un bug bizarre dans une de mes classes, et je ne comprend pas pourquoi. J'espere que vous pourrez m'aider...
J'ai un programme utilisant une librairie que j'ai créé qui fonctionnait correctement jusqu'a maintenant. J'ai voulu ajouter une variable dans la définition d'une de mes classes, et je n'y arrive pas, il plante a l'execution, sans meme l'utiliser dans le .cpp.
As-tu pensé à *tout* recompiler ?
J'ai fait plusieurs essais, et quelque soit le type de la variable, int, float, objet... avec l'importe quel nom, j'ai un plantage a l'execution à l'adresse 0x0.
Adresse de donnée ou de code ?
Je comprend vraiment pas, j'enleve un 'int toto', ca fonctionne, je le remet, ca plante...
Mes hypothèses: - recompilation partielle uniquement, et donc deux binaires incompatibles - un code déjà faux, mais qui marchait par malchance, et en changeant l'alignement et/ou la taille de la classe, une écriture "hors variable" qui tapait jusqu'à présent dans le vide et qui maintenant tape dans quelque chose d'utile.
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Regis Ramillien wrote:
Bonjour a tous,
Je poste sur ce newsgroup car j'ai un bug bizarre dans une de mes classes,
et je ne comprend pas pourquoi.
J'espere que vous pourrez m'aider...
J'ai un programme utilisant une librairie que j'ai créé qui fonctionnait
correctement jusqu'a maintenant.
J'ai voulu ajouter une variable dans la définition d'une de mes classes, et
je n'y arrive pas, il plante a l'execution, sans meme l'utiliser dans le
.cpp.
As-tu pensé à *tout* recompiler ?
J'ai fait plusieurs essais, et quelque soit le type de la variable, int,
float, objet... avec l'importe quel nom, j'ai un plantage a l'execution à
l'adresse 0x0.
Adresse de donnée ou de code ?
Je comprend vraiment pas, j'enleve un 'int toto', ca fonctionne, je le
remet, ca plante...
Mes hypothèses:
- recompilation partielle uniquement, et donc deux binaires incompatibles
- un code déjà faux, mais qui marchait par malchance, et en changeant
l'alignement et/ou la taille de la classe, une écriture "hors variable"
qui tapait jusqu'à présent dans le vide et qui maintenant tape dans
quelque chose d'utile.
Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.
Je poste sur ce newsgroup car j'ai un bug bizarre dans une de mes classes, et je ne comprend pas pourquoi. J'espere que vous pourrez m'aider...
J'ai un programme utilisant une librairie que j'ai créé qui fonctionnait correctement jusqu'a maintenant. J'ai voulu ajouter une variable dans la définition d'une de mes classes, et je n'y arrive pas, il plante a l'execution, sans meme l'utiliser dans le .cpp.
As-tu pensé à *tout* recompiler ?
J'ai fait plusieurs essais, et quelque soit le type de la variable, int, float, objet... avec l'importe quel nom, j'ai un plantage a l'execution à l'adresse 0x0.
Adresse de donnée ou de code ?
Je comprend vraiment pas, j'enleve un 'int toto', ca fonctionne, je le remet, ca plante...
Mes hypothèses: - recompilation partielle uniquement, et donc deux binaires incompatibles - un code déjà faux, mais qui marchait par malchance, et en changeant l'alignement et/ou la taille de la classe, une écriture "hors variable" qui tapait jusqu'à présent dans le vide et qui maintenant tape dans quelque chose d'utile.
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Alexandre
bonjour,
Cela dit, j'ai une autre question, du coup, lorsque je met des breakpoints dans mon programme, le compilo me met des '?' a l'interieur du cercle rouge du breakpoint et ne s'y arrete jamais.
à priori c'est parce que le breakpoint est invalide : soit il est impossible de s'arreter sur la ligne indiquée (par exemple une simple déclaration int i ne peut servir de breakpoint) soit la ligne indiquée n'est pas compilée (non utilisée par exemple : cas d'une fonction écrite mais jamais appelée, etc...). Quant à ton bug "étrange" je dirais que la vérité est ailleurs ;-) Vérifies que nulle part dans ton code tu ne fasses de transtypage de ou vers ton type de classe (si tu changes sa taille...) ou des choses dans le genre. Tu peux également mettre dans un premier temps des messagebox un peu partout pour voir à quel moment ça plante si tu n'y arrives pas avec le débogueur.
Je pense que ca vient des paramètres du projet, mais comme dit plus haut, j'y connait rien, j'ai bien essayé de gratouiller (de mettre l'option '/debug', de lui donner un nom de fichier pour la base), mais rien n'y fait... Si vous pouviez aider un pauvre petit developpeur qui s'y perd...
merci ;)
Régis
bonjour,
Cela dit, j'ai une autre question, du coup, lorsque je met des breakpoints
dans mon programme, le compilo me met des '?' a l'interieur du cercle
rouge
du breakpoint et ne s'y arrete jamais.
à priori c'est parce que le breakpoint est invalide : soit il est impossible
de s'arreter sur la ligne indiquée (par exemple une simple déclaration int i
ne peut servir de breakpoint) soit la ligne indiquée n'est pas compilée (non
utilisée par exemple : cas d'une fonction écrite mais jamais appelée,
etc...).
Quant à ton bug "étrange" je dirais que la vérité est ailleurs ;-)
Vérifies que nulle part dans ton code tu ne fasses de transtypage de ou vers
ton type de classe (si tu changes sa taille...) ou des choses dans le genre.
Tu peux également mettre dans un premier temps des messagebox un peu partout
pour voir à quel moment ça plante si tu n'y arrives pas avec le débogueur.
Je pense que ca vient des paramètres
du projet, mais comme dit plus haut, j'y connait rien, j'ai bien essayé de
gratouiller (de mettre l'option '/debug', de lui donner un nom de fichier
pour la base), mais rien n'y fait...
Si vous pouviez aider un pauvre petit developpeur qui s'y perd...
Cela dit, j'ai une autre question, du coup, lorsque je met des breakpoints dans mon programme, le compilo me met des '?' a l'interieur du cercle rouge du breakpoint et ne s'y arrete jamais.
à priori c'est parce que le breakpoint est invalide : soit il est impossible de s'arreter sur la ligne indiquée (par exemple une simple déclaration int i ne peut servir de breakpoint) soit la ligne indiquée n'est pas compilée (non utilisée par exemple : cas d'une fonction écrite mais jamais appelée, etc...). Quant à ton bug "étrange" je dirais que la vérité est ailleurs ;-) Vérifies que nulle part dans ton code tu ne fasses de transtypage de ou vers ton type de classe (si tu changes sa taille...) ou des choses dans le genre. Tu peux également mettre dans un premier temps des messagebox un peu partout pour voir à quel moment ça plante si tu n'y arrives pas avec le débogueur.
Je pense que ca vient des paramètres du projet, mais comme dit plus haut, j'y connait rien, j'ai bien essayé de gratouiller (de mettre l'option '/debug', de lui donner un nom de fichier pour la base), mais rien n'y fait... Si vous pouviez aider un pauvre petit developpeur qui s'y perd...
merci ;)
Régis
regis Ramillien
Bon, merci a tous, j'ai trouvé, effectivement, mon code d'origine etait déja faux... J'avais un booleen que j'avais oublié d'initialiser et qui me servait a savoir si ma classe était lancé... Donc jusqu'a present, il valait 'true' alors qu'en rajoutant une variable dans une classe dérivée, il valait 'false'... Merci les messageBox...
Sinon, je peux toujours pas mettre de breakpoints et je sais pas d'ou ca vient. Personne connait un bon site qui explique tout se qu'on trouve dans les propriétés d'un projet vs.net?
Merci
Régis
Bon, merci a tous, j'ai trouvé, effectivement, mon code d'origine etait déja
faux...
J'avais un booleen que j'avais oublié d'initialiser et qui me servait a
savoir si ma classe était lancé...
Donc jusqu'a present, il valait 'true' alors qu'en rajoutant une variable
dans une classe dérivée, il valait 'false'...
Merci les messageBox...
Sinon, je peux toujours pas mettre de breakpoints et je sais pas d'ou ca
vient. Personne connait un bon site qui explique tout se qu'on trouve dans
les propriétés d'un projet vs.net?
Bon, merci a tous, j'ai trouvé, effectivement, mon code d'origine etait déja faux... J'avais un booleen que j'avais oublié d'initialiser et qui me servait a savoir si ma classe était lancé... Donc jusqu'a present, il valait 'true' alors qu'en rajoutant une variable dans une classe dérivée, il valait 'false'... Merci les messageBox...
Sinon, je peux toujours pas mettre de breakpoints et je sais pas d'ou ca vient. Personne connait un bon site qui explique tout se qu'on trouve dans les propriétés d'un projet vs.net?