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

Discussion :

Exception en release mais pas en debug

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut Exception en release mais pas en debug
    Bonjour,

    J'ai une application Qt (5.2) qui me sert à centraliser les appels à un autre programme.
    Ce programme ne peut pas être lancé plusieurs fois simultanément et il ne sait pas gérer cela. Je fait donc cela en Qt.

    Cela fonctionne bien en mode Debug, aucune erreur, aucune notification, fonctionnement comme attendu.

    Quand je compile en mode release, je lance l'exe créé avec Qt, ensuite il lance mon application tierce et a priori à la fin de son exécution le programme Qt plante avec une exception c0000005 pour Qt5Core.dll.

    A priori c'est un problème de violation d'accès http://www.qtcentre.org/threads/4645...sion-run-carsh).

    Ce qui m'échappe, ce n'est pas la violation d'accès en elle-même, mais pourquoi cela arrive en Release et pas en Debug ?
    J'aimerai bien reproduire en mode Debug, parce que débogguer en Release, sans le déboggeur QT, je ne vois pas trop comment faire

    Du coup, je met des qDebug de partout et en particulier dans DeleteOnFinish() appelé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QObject::connect(process, SIGNAL(finished(int)), slot, SLOT(DeleteOnFinish()));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     void SlotFinished::DeleteOnFinish(){
            delete sender();
            qApp->quit();
            qDebug("AAA");
        }
    Et bien un qDebug ici et ça ne plante plus Release ...

    Un truc m'échappe, si vous avez une idée, je prends

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 718
    Points : 2 379
    Points
    2 379
    Par défaut
    Bonjour.

    Il me semble qu'il faut utiliser deleteLater() sur un QObject.

    Peut-être que sender()->deleterLater(); fonctionnera mieux ?

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    C'était exactement cela.

    Merci beaucoup

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/06/2012, 00h35
  2. Réponses: 6
    Dernier message: 20/05/2010, 12h34
  3. Acces violation avec la version release, mais pas la debug
    Par Matthieu Brucher dans le forum Qt
    Réponses: 5
    Dernier message: 07/03/2010, 22h20
  4. Problème d'exécution en release mais pas en debug (2)
    Par animageo dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/11/2007, 15h22
  5. Problème Exécution en Release mais pas en Debug
    Par nono27200 dans le forum VB 6 et antérieur
    Réponses: 67
    Dernier message: 08/11/2007, 17h55

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