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

C++ Discussion :

erreur étrange : plus d'accès à this


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 167
    Points : 69
    Points
    69
    Par défaut erreur étrange : plus d'accès à this
    Bonjour,

    Je fais du C++ avec Qt4 sous linux avec Kdevelopp. Ca fait plusieurs mois que tout ce passe bien donc je mettrais pas tout le code (sinon je vas faire exploser la mémoire du serveur! ) mais demandez -moi des précisisions et je me ferais une joie de vous en fournir!

    Donc voilà le contexte :
    Un MainWidget dans un MainWindows. Le MainWidget est un "visualiseur" de Widget (un QStackedLayout pour ceux qui connaisse...enfin une liste qui affiche l'un des widget en stock). On peut supposer que TrollTech a fait correctement son boulot et que donc tous ses trucs sont parfaitement fonctionnels et finis.

    Le cas :
    Lors d'une action dans l'interface (Qt, ça fait des interfaces) (SAVE), la MainWindows exécute une méthode public du MainWidget qui a son tour exécute une méthode public du Widget en cours... Donc tout ça est simple et je pense pas qu'un switch puisse poser problème. ( ) J'en suis tout de même à ma 8ème page d'interface et la sauvegarde n'avait jusque là pas opposé de résistance...d'autant qu'il s'agit d'un exemple QT.
    Donc ce qui est étrange dans la méthode appellée (avec ou sans argument, j'ai tout testé), c'est que je peux tout faire...sauf utiliser les attributs de this sans un SEGFAULT (11)!!! Un peu...embêtant vous me direz

    Les signes :
    Ca compile (avec gcc), ça ne signale pas d'erreur (ni warning), lors de l'exécution, ça se déclenche toujours lors de l'action spécifique, ça délivre finalement un SEGFAULT (11).

    Propositions :
    Il s'agit visiblement d'un pb mémoire. J'ai testé avec VALGRIND mais avec Qt, c'est pas très lisible en somme... mais ce dont je suis sûr c'est que c'est variable ça se déclence toujours lors de l'exécution. Ya bien des erreurs...

    Qq1 aurait-il une once d'idée pour me dépanner? Quels sont les types de causes à ce genre d'effet (à savoir un pb mémoire sur this?)etc.

    Merci mille fois d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Bah valgrind doit être explicite.
    Boost ftw

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    GDB, c'est bien.

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    gdb ne détecte que les accès mémoire qui produisent une erreur de segmentation ou chose du style.

    valgrind détecte tous les accès à de la mémoire non autorisée et/ou non initialisée.
    Boost ftw

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tout à fait d'accord, mais dans ce cas, gdb lui donnera bien plus vite la solution puisqu'il ira directement là où il y a l'erreur et donc pourra commencer à remonter l'enchaînement qui a conduit à l'erreur.

Discussions similaires

  1. Plus d'accès à ma mdb erreur 3011
    Par drakenzara dans le forum Access
    Réponses: 1
    Dernier message: 17/01/2007, 21h17
  2. Réponses: 22
    Dernier message: 14/12/2005, 15h01
  3. [D7] Erreur de violation d'accès
    Par plante20100 dans le forum Langage
    Réponses: 10
    Dernier message: 26/08/2005, 11h05
  4. [TestStand] Erreur lors d'un accès à une Base de données
    Par capblans dans le forum Autres langages
    Réponses: 1
    Dernier message: 20/07/2005, 10h29
  5. Erreur étrange sur recvfrom
    Par Gore dans le forum Développement
    Réponses: 2
    Dernier message: 17/02/2005, 12h22

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