Forum Programmation.c++ Prob g++

Posté par  .
Étiquettes : aucune
0
3
mar.
2006
Salut,

Etant étudiant j'utilise la version 3.3 de g++ à la fac et la version 4 de g++ chez moi. Mon projet de td fini, je le compile chez moi tout marche impec (le programme tourne comme il faut). Mais quand je veux le faire marcher à la fac j'ai un beau segmentation fault.

A noter qu'à la fac je recompile le programme, je ne le fais pas marcher directement. Je fais tourner mon arbre AVL avec exactement les memes corpus que chez moi.

Je ne comprends rien ? Que se passe t il ? Y a t il des enormes differences entre les versions de g++ ?


Merci pour les reponses !!!!
  • # Bug

    Posté par  . Évalué à 1.

    Cela ne peut à mon avis que venir d'un bug dans ton programme ... Méfie toi notamment des UB (undefined behaviour) qui peuvent très bien fonctionner pendant longtemps, puis, du jour au lendemain, faire boom ...
  • # warnings et valgrind

    Posté par  . Évalué à 3.

    Au cas ou tu ne l'aurais pas deja fait, demande a g++ d'afficher tous les warnings. Tu peux aussi utiliser valgrind pour regarder si tu ne fais pas un depacement de tableau, une utilisation de variable non initialisee...
  • # Oui il ya des différences énormes entre gcc 3.x et gcc 4.x !!!

    Posté par  . Évalué à 2.

    Ce qui m'étonnent dans ton cas c'est que gcc 4.x compile des choses que gcc 3.x ne compile pas. Normalement les séries 4.x sont réputés pour être plus éxigentes que les 3.x

    Ces différences sont là pour forcer les dev à utiliser les standards les plus stricts donc potentiellement produisant du code plus stable et plus portable.

    Cependant assure toi que tu n'as pas opérer des transtypages "éxotiques", ou autres dépassement de tableau (la ségmentation fault n'intervient pas toujours ce qui peut rendre ce genre d'erreur difficilement détéctable, de plus tu ne dépasse pas forcement à toutes les éxécution du programme).

    J'utiliserais moi aussi valgrind en mode memcheck pour tracer les allocations/désallocations et le écriture hors des ségments mémoires alloués.

    Ne sachant que trop bien à quel point ce type d'erreur peut pourrir la vie des développeurs je te souhaite bon courage.
  • # Valgrind

    Posté par  . Évalué à 1.

    Histoire de remettre une couche par rapport aux deux posts précédents.
    Valgrind, valgrind, valgrind .....

    C'est un peu humliliant au début, mais après t'as l'impression de rendre un code de qualité un peu plus pro.
  • # Reussi

    Posté par  . Évalué à 1.

    Merci pour vos conseils, donc aprés une utilisation de Valgrind, j'ai pu voir ou était mon erreure.

    Thanks everybody !!!!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.