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

Python Discussion :

Segmentation fault en quittant une application.


Sujet :

Python

  1. #1
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut Segmentation fault en quittant une application.
    Bonjour,

    J'ai une application qui semble crasher en quittant.

    certaines fois j'obtiens un simple message "Segmentation fault", d'autres fois
    ceci
    *** glibc detected *** python: double free or corruption (!prev): 0x0a39ffb0 ***
    ======= Backtrace: =========
    /lib/tls/i686/cmov/libc.so.6[0xb7587604]
    /lib/tls/i686/cmov/libc.so.6(cfree+0x96)[0xb75895b6]
    /usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb6dc6231]
    /usr/lib/libQtGui.so.4(_ZN11QLayoutItemD0Ev+0x28)[0xb5d8e448]
    /usr/lib/libQtGui.so.4[0xb5d7f5a0]
    /usr/lib/libQtGui.so.4(_ZN11QGridLayoutD2Ev+0x3b)[0xb5d7f72b]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb696d419]
    /usr/lib/libQtGui.so.4(_ZN10QBoxLayoutD2Ev+0x12e)[0xb5d698de]
    /usr/lib/libQtGui.so.4(_ZN11QVBoxLayoutD2Ev+0x31)[0xb5d69a21]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb6a7e735]
    /usr/lib/libQtGui.so.4[0xb5d7f5a0]
    /usr/lib/libQtGui.so.4(_ZN11QGridLayoutD2Ev+0x3b)[0xb5d7f72b]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb696d419]
    /usr/lib/libQtGui.so.4(_ZN7QWidgetD2Ev+0xc9)[0xb5dad569]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb6a6423b]
    /usr/lib/libQtCore.so.4(_ZN14QObjectPrivate14deleteChildrenEv+0x6f)[0xb6f55e3f]
    /usr/lib/libQtGui.so.4(_ZN7QWidgetD2Ev+0x1cb)[0xb5dad66b]
    /usr/lib/libQtGui.so.4(_ZN6QFrameD2Ev+0x31)[0xb618ccd1]
    /usr/lib/libQtGui.so.4(_ZN14QStackedWidgetD0Ev+0x35)[0xb61fcf45]
    /usr/lib/libQtCore.so.4(_ZN14QObjectPrivate14deleteChildrenEv+0x6f)[0xb6f55e3f]
    /usr/lib/libQtGui.so.4(_ZN7QWidgetD2Ev+0x1cb)[0xb5dad66b]
    /usr/lib/libQtGui.so.4(_ZN10QTabWidgetD2Ev+0x31)[0xb620cdd1]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb67b3f17]
    /usr/lib/libQtCore.so.4(_ZN14QObjectPrivate14deleteChildrenEv+0x6f)[0xb6f55e3f]
    /usr/lib/libQtGui.so.4(_ZN7QWidgetD2Ev+0x1cb)[0xb5dad66b]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb6a6423b]
    /usr/lib/libQtCore.so.4(_ZN14QObjectPrivate14deleteChildrenEv+0x6f)[0xb6f55e3f]
    /usr/lib/libQtGui.so.4(_ZN7QWidgetD2Ev+0x1cb)[0xb5dad66b]
    /usr/lib/libQtGui.so.4(_ZN11QDockWidgetD2Ev+0x31)[0xb6174131]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb6a0a9c9]
    /usr/lib/libQtCore.so.4(_ZN14QObjectPrivate14deleteChildrenEv+0x6f)[0xb6f55e3f]
    /usr/lib/libQtGui.so.4(_ZN7QWidgetD2Ev+0x1cb)[0xb5dad66b]
    /usr/lib/libQtGui.so.4(_ZN11QMainWindowD2Ev+0x31)[0xb61a9531]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb6902529]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb68a2522]
    /usr/lib/python2.6/dist-packages/PyQt4/QtGui.so[0xb68a2564]
    /usr/lib/python2.6/dist-packages/sip.so[0xb76e75a3]
    python[0x80a90d5]
    python[0x808cb61]
    python(PyDict_SetItem+0x59)[0x808ee69]
    python(_PyModule_Clear+0x131)[0x80909c1]
    python(PyImport_Cleanup+0x292)[0x80f17a2]
    python(Py_Finalize+0xad)[0x80fd90d]
    python[0x80fd371]
    python(PyErr_PrintEx+0x17d)[0x80fd55d]
    python(PyErr_Print+0x12)[0x80fd7c2]
    python(PyRun_SimpleFileExFlags+0x132)[0x80fe392]
    python(Py_Main+0xcb2)[0x805c882]
    python(main+0x22)[0x805b972]
    /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb752e775]
    python[0x805b8b1]
    ======= Memory map: ========
    08048000-08225000 r-xp 00000000 08:16 954 /usr/bin/python2.6
    08225000-08226000 r--p 001dc000 08:16 954 /usr/bin/python2.6
    08226000-08273000 rw-p 001dd000 08:16 954 /usr/bin/python2.6
    08273000-0827c000 rw-p 08273000 00:00 0
    09ce7000-0a5ed000 rw-p 09ce7000 00:00 0 [heap]
    ad1e2000-aece3000 rw-p ad1e2000 00:00 0
    b0ac4000-b25c5000 rw-p b0ac4000 00:00 0
    b25c5000-b2625000 rw-s 00000000 00:09 491535 /SYSV00000000 (deleted)
    b2625000-b2626000 ---p b2625000 00:00 0
    b2626000-b4927000 rw-p b2626000 00:00 0
    b4928000-b4929000 rw-p b4928000 00:00 0
    b4929000-b494c000 r--p 00000000 08:16 35537 /usr/share/fonts/truetype/ttf-arabeyes/ae_AlMateen-Bold.ttf
    b494c000-b49d8000 r--p 00000000 08:16 35582 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
    b49d8000-b49f2000 r--s 00000000 08:16 8498 /usr/share/mime/mime.cache
    b49f2000-b4a04000 r-xp 00000000 08:16 4636 /usr/lib/libgvfscommon.so.0.0.0
    b4a04000-b4a05000 r--p 00012000 08:16 4636 /usr/lib/libgvfscommon.so.0.0.0
    b4a05000-b4a06000 rw-p 00013000 08:16 4636 /usr/lib/libgvfscommon.so.0.0.0
    b4a06000-b4a20000 r-xp 00000000 08:16 6222 /usr/lib/gio/modules/libgvfsdbus.so
    b4a20000-b4a21000 r--p 00019000 08:16 6222 /usr/lib/gAbandon
    Si je le lance avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gdb python -ex 'set args main.py' -ex run
    j'obtiens uniquement ceci en plus à la fin du précédent texte:
    Program received signal SIGABRT, Aborted.
    [Switching to Thread 0xb766a6c0 (LWP 3503)]
    0xb7847430 in __kernel_vsyscall ()
    Existerait-il une méthode d'exit qui permettrait de tracer le problème ou de le prévenir ?

    Merci pour vos idées.

    vincent

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Bon, j'ai fini par trouver.

    Comme l'application utilise Qt, j'ai lancé le fichier de l'interface tout seul, et l'erreur de segmentation était toujours là.

    Après il n'y avait plus qu'à commenter des groupes de widgets et relancer le script à chaque fois jusqu'à disparition du message d'erreur.

    Maintenant que j'ai trouvé l'erreur, je dois dire que je suis assez perplexe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    spacerItem15 = QtGui.QSpacerItem(50, 8, QtGui.QSizePolicy.Expanding,    
                                                       QtGui.QSizePolicy.Minimum)
    self.gl_24.addItem(spacerItem14, 2, 1, 1, 1)
    Ce spacerItem14 était bien sur déjà placé dans un autre layout quelques lignes plus haut.

    vincent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. OmniORB - segmentation fault - recuperation d'une reference
    Par L'elfe d'Azur dans le forum CORBA
    Réponses: 3
    Dernier message: 12/04/2011, 14h51
  2. Réponses: 1
    Dernier message: 11/03/2009, 15h09
  3. segmentation fault quand j'exécute une commande java (sablevm)
    Par kris1 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 13/03/2008, 15h21
  4. Réponses: 9
    Dernier message: 24/01/2008, 12h53
  5. Réponses: 6
    Dernier message: 13/11/2005, 12h11

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