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 :

Crash dans std::ostream::flush


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 70
    Points : 38
    Points
    38
    Par défaut Crash dans std::ostream::flush
    Bonjour,

    A la fermeture de mon application, il arrive parfois ( une fois sur deux ou trois environ ) que le programme crashe. C'est pas bien embêtant, mais j'aimerai autant éviter que ça se produise.
    Quand je le passe au debugger ( gdb ), j'obtiens cette trace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #0 00000000	0x00815bd8 in std::ostream::flush() (??:??)
    #1 00000000	0x007a6894 in std::ios_base::Init::~Init() (??:??)
    #2 007A32EF	__tcf_0() (c:/mingw/bin/../lib/gcc/mingw32/4.3.2/include/c++/iostream:77)
    #3 77B41FEF	msvcrt!_flushall() (C:\Windows\system32\msvcrt.dll:??)
    #4 00000000	0x9ef632f3 in ??() (??:??)
    #5 00000000	0x00000000 in ??() (??:??)
    Je vois cependant assez peu d'où peut venir le problème. Mon application utilise en particulier wxWidgets et SFML.
    Si quelqu'un a une quelconque piste là dessus..

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Ca sent la double libération d'un pointeur (en gros:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    T* foo=new T;
    delete foo; // OK
    delete foo: // peut crasher, comme pas.
    .

    Mais sans plus de détail, dire d'aller plus loin.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 70
    Points : 38
    Points
    38
    Par défaut
    ( Oups, voilà que j'oublie d'aller voir mon propre sujet ).

    Je crois avoir trouvé le problème, j'utilisais un wxStreamToTextRedirector ( pour rediriger le flux de la console ) que je ne libérais pas.
    Pas exactement une double libération, mais c'était pas loin.

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

Discussions similaires

  1. std::ostream dans une DLL
    Par Ange_blond dans le forum C++
    Réponses: 1
    Dernier message: 06/05/2009, 12h18
  2. crash dans MSVCRTD!fcloseall ?
    Par tsoueid dans le forum Visual C++
    Réponses: 2
    Dernier message: 29/10/2007, 06h52
  3. "gnome-keyboard-properties" crash dans Debian
    Par 00700 dans le forum Debian
    Réponses: 0
    Dernier message: 07/10/2007, 18h07
  4. Objets dérivé de std::ostream et manipulateur
    Par Sub dans le forum SL & STL
    Réponses: 2
    Dernier message: 03/10/2007, 06h26
  5. attraper un crash dans une fonction d'une bibliothèque
    Par JeromeCJU dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 10/03/2006, 13h17

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