Lun 28/01/2013 - Actualités

Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Lun 28/01/2013 - Actualités

Message non lu par Xavier »

Crash


Le crash à la fermeture a été localisé.
Il se produit quand l'application est fermée alors que l'Agenda est encore ouvert, mais pas de façon systématique. A la réflexion, il y avait le même problème sur les autres outils.

Le phénomène est étrange, car la fermeture de l'application par le menu déclenche une procédure utilisée depuis des années, qui ferme d'abord les dialogues ouverts, puis les outils ouverts, puis la Barre, et enfin sauve les fichiers et liquide les dernières variables avant de rendre la main. C'est après toutes ces opérations (après la dernière ligne de code XT) que quelque chose déclenche un changement de sélection dans la liste des évènements ! La fenêtre de l'Agenda étant fermée et toutes ses variables détruites, le crash se produit quand le code tente de récupérer la donnée utilisateur pointée par la sélection.

Cela ressemble à une mise à jour "tardive" de Windows sur des composants fantômes. Il est peu probable que ça puisse être empêché, donc la correction sera sans doute un blindage du code à cet endroit. Mais pour le moment le blindage explose car il utilise des variables... détruites à la fermeture. lol
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Lun 28/01/2013 - Actualités

Message non lu par Xavier »

AntiCrash


Un système AntiCrash a été branché dans les outils utilisant des ListView, puisque ce sont eux qui sont mis à jour après leur destruction.

La trace est automatiquement activée lors de la fermeture afin de collecter les cas possibles via le fichier XTools.log :

Code : Tout sélectionner

2013-01-28	11:27:19	Info	XTools	Terminated
2013-01-28	11:27:19	Info	AntiCrash	(TAgenda_Form.Agenda_List_OnChange)
2013-01-28	11:27:19	Info	AntiCrash	(TContacts_Form.Contacts_List_OnChange)
La suite des tests va permettre de valider le système anticrash.
Denis
Messages : 180
Enregistré le : jeu. 23 juin 2011 09:21

Re: Lun 28/01/2013 - Actualités

Message non lu par Denis »

En fait c'est ta trace qui fait le crash, car son parent est la fenêtre détruite ;-) LOL
Répondre