Bug relou avec xcode, sorte de point d'arret invisible ?
Djobird
Membre
Bonjour,
j'ai un bug bien relou, de temps en temps, et de plus en plus souvent (à un tel point que je n'arrive plus à lancer mon appli normalement). L'appli se lance, et se bloque avec le debuger activé au milieu. Il n y a pas d'erreur, l'appli est juste bloquée, la pile a des actions en cours, etc.
Je n'ai aucun break point dessus.
Dans la console j'ai ca qui vient se mettre en plus :
Donc je comprends pas. J'ai Version 3.1.4, l'appli est lancée avec le simulateur en mode débug ou release.
Edit : Après test, j'ai remarqué la chose suivante :
Si dans Project->Edit Executable, que sous l'onglet Debugging je décoche "Auto-attach debugger on crash", alors au lieu d'avoir le debuger une fois l'appli chargé, j'ai un crash du simulateur avec une erreur mac os
Mais pour autant je n'ai pas d'erreur afficher dans les logs ...
j'ai un bug bien relou, de temps en temps, et de plus en plus souvent (à un tel point que je n'arrive plus à lancer mon appli normalement). L'appli se lance, et se bloque avec le debuger activé au milieu. Il n y a pas d'erreur, l'appli est juste bloquée, la pile a des actions en cours, etc.
Je n'ai aucun break point dessus.
Dans la console j'ai ca qui vient se mettre en plus :
<br />[Session started at 2010-03-17 22:52:28 +0100.]<br />GNU gdb 6.3.50-20050815 (Apple version gdb-967) (Tue Jul 14 02:11:58 UTC 2009)<br />Copyright 2004 Free Software Foundation, Inc.<br />GDB is free software, covered by the GNU General Public License, and you are<br />welcome to change it and/or distribute copies of it under certain conditions.<br />Type "show copying" to see the conditions.<br />There is absolutely no warranty for GDB. Type "show warranty" for details.<br />This GDB was configured as "i386-apple-darwin".<br />sharedlibrary apply-load-rules all<br />Attaching to process 8629.<br />
Donc je comprends pas. J'ai Version 3.1.4, l'appli est lancée avec le simulateur en mode débug ou release.
Edit : Après test, j'ai remarqué la chose suivante :
Si dans Project->Edit Executable, que sous l'onglet Debugging je décoche "Auto-attach debugger on crash", alors au lieu d'avoir le debuger une fois l'appli chargé, j'ai un crash du simulateur avec une erreur mac os
L'application DjobirdAppli a quitte inopinément.<br />Mac OS X et les autres applications n'ont pas été affectés. <br />blabla relancer, blabla ignorer...<br />
Mais pour autant je n'ai pas d'erreur afficher dans les logs ...
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
J'effectuais un release sur un NSString alors que ce n'était pas necessaire. Ce ne plantait pas au release mais après, je suppose quand le garbage s'en occupait. Je crois que j'ai vraiment rien compris au systeme de mémoire
Il n'y a pas de garbage collector sur l'iPhone. Ne pas planter immédiatement, c'est le coup classique pour les problèmes de gestion mémoire...
Il va falloir comprendre pourtant, pour espérer sortir une application stable sur l'appstore...
C'est pas méchant, il suffit de comprendre les quelques règles et la logique à suivre, mais c'est priomordial et c'est aller droit dans le mur que de continuer à programmer en Obj-C et pour iPhone sans l'avoir parfaitement compris, on ne l'aura jamais assez dit.
Sinon, bonjour les plantages difficiles à déboguer, les comportements erratiques de ton appli, et j'en passe
Bonne lecture
Memory Management
En fait, j'avais compris la grande majorité des principes (enfin j'espère ), c'est juste que je pensais que l'auto release devait être explicite lors de l'accès a certaine proprieté. Alors que non ^^