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 :oops:
Du coup, je met des qDebug de partout et en particulier dans DeleteOnFinish() appelé comme ceci :
Code:
QObject::connect(process, SIGNAL(finished(int)), slot, SLOT(DeleteOnFinish()));
Code:
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 ;)