Débugguer une SIGENV 11
muqaddar
Administrateur
[tt]Executable ?menu? has exited due to signal 11 (SIGSEGV).[/tt]
Bon, quand le code a l'air bon, aucune erreur, aucun warning, comment vous débugueriez une erreur 11 de SIGENV ?
Si je mets des points d'arrêts, ça me renvoie des à des trucs incompréhensibles dans "build and debug"...
J'ai ça aussi ds la console : Program received signal: "EXC_BAD_ACCESS".
merci
Bon, quand le code a l'air bon, aucune erreur, aucun warning, comment vous débugueriez une erreur 11 de SIGENV ?
Si je mets des points d'arrêts, ça me renvoie des à des trucs incompréhensibles dans "build and debug"...
J'ai ça aussi ds la console : Program received signal: "EXC_BAD_ACCESS".
merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bienvenue dans le monde des pointeurs fous
Je n'ai pas de solution miracle, tu devrais pouvoir cerner le problème avec le débogeur mais pas obligatoirement si le plantage se produit dans le runLoop ( affichage ?)
Tu peux aussi regarder le crash log de ton prog (~/Library/Logs)
Il s'agit peut-être, banalement, d'un objet désallouer prématurément...
Je n'ai rien trouvé dansle crashLog...
Et j'ai essayé d'enlever des release à deux variables sans succès. Je vais continuer à fouiller.
merci
Peut-être qu'avec le tool ObjectAlloc, tu vas trouver quelque chose ? Celui-ci va te montrer la gestion mémoire de tes objets, et tu pourras peut-être voir où ça coince ? ???
Y'a 2 classes de 30 lignes seulement. Et je suis sûr que c'ets un truc tout bête....
[Fichier joint supprimé par l'administrateur]
t'as oublié les [tt]return self;[/tt] à la fin des méthodes init de tes 2 classes (MyDatasource et FoodItem).
Mets les, et tu verras, ça change tout !
Par ailleurs, je conseille même de faire un :
[tt]self=[super init];[/tt] en première ligne.
Pour la petite histoire, puisque tu ne spécifiais aucun retour, l'objet retourné par le init sur tes classes était un pointeur aléatoire, ce qui plantait l'appli sur le addObject...
.
Ca plante dans [MyDataSource init] + 0x100 (MyDataSource.m:15)
Je suis impardonable puisque c'est un code que j'ai retapé d'un tutorial, que je l'ai relu 10 fois sans voir cette ligne, et le pire, c'ets que je ne comprenais pas pourquoi il n'y avait pas de return self dans cet init... Bref, on voyait que je m'étais couché à 3h30 du matin certainement.