Question

L'un des produits que nous développons est une application téléphonique pour les téléphones Nokia en C ++ et Symbian, nous avons commencé à obtenir « au hasard » tombe en panne un certain temps il y a une panique USER 44.

Je suis assez nouveau pour l'environnement symbian donc je suis à la recherche d'outils et de recommandations pour aider à trouver la racine de ce bogue.

Y at-il un équivalent d'une « trace de la pile » que je peux obtenir? Y at-il un code de panique attraper générique qui pourrait me donner un aperçu il?

Était-ce utile?

La solution

De http: // www. symbian.com/developer/techlib/v9.1docs/doc_source/reference/N10352/UserPanics.html :

This panic is raised by the Free() and FreeZ() member functions of an RHeap.
It is caused when the cell being freed overlaps the next cell on the free
list (i.e. the first cell on the free list with an address higher than the
one being freed).

Cela signifie, votre appelant supprimer / supprimer [] (qui à son tour appel gratuit () / FreeZ ()) avec un pointeur non valide. Lorsque debug en carbure le debuger doit briser sur la ligne qui provoque la panique et vous devriez être en mesure de voir la suppression incorrecte.

Autres conseils

Kasprzol a souligné , pas à pas dans le débogueur devrait vous permettre de réduire à l'ensemble de lignes ou de routine provoquant la panique. Vous pouvez également vous assurer que vous n'êtes pas essayer de supprimer un objet tas dont la propriété a été transférée à un autre objet de tas (probablement par un appel de méthode qui ne documente pas clairement ce fait) qui a déjà supprimé cet objet avant que vous supprimez explicitement . J'ai été mordu par ce dernier avant.

Ma compréhension vague est que USER 44 et 45 USER paniques tous deux ont à voir avec des problèmes de tas. Le problème le plus commun serait une double suppression. Etes-vous NULL'ing vos pointeurs après les supprimer? Vérifiez-vous contre NULL avant de les supprimer? Où pourriez-vous quelque chose à double suppression?

Le choix le plus facile pour le débogage est probablement d'utiliser carbure 2.0, car il est entièrement en vedette et librement disponible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top