Débugguer une SIGENV 11

muqaddarmuqaddar Administrateur
14:35 modifié dans API AppKit #1
[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

Réponses

  • mpergandmpergand Membre
    14:35 modifié #2
    Bonjour oxitan,

    Bienvenue dans le monde des pointeurs fous :D

    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...
  • muqaddarmuqaddar Administrateur
    14:35 modifié #3
    Salut mpergand,

    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

  • Eddy58Eddy58 Membre
    14:35 modifié #4
    Salut Oxitan ! :)

    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 ?  ???
  • muqaddarmuqaddar Administrateur
    14:35 modifié #5
    Si y'a un gentil membre qui veut bien jeter un coup d'oeil au projet en question, parce que là  je sèche.
    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]
  • BruBru Membre
    octobre 2004 modifié #6
    Mon très cher Oxitan,

    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...

    .
  • mpergandmpergand Membre
    14:35 modifié #7
    Exception:  EXC_BAD_ACCESS (0x0001)
    Codes:      KERN_INVALID_ADDRESS (0x0001) at 0x7c030398

    Thread 0 Crashed:
    0   libobjc.A.dylib      0x908311ec objc_msgSend + 0xc
    1   MyDataSource.ob      0x000e5b20 -[MyDataSource init] + 0x100 (MyDataSource.m:15)
    2   com.apple.AppKit      0x92ebb548 -[NSCustomObject nibInstantiate] + 0x10c
    3   com.apple.AppKit      0x92dea91c -[NSIBObjectData instantiateObject:] + 0xbc
    4   com.apple.AppKit      0x92df1948 -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 0x88
    5   com.apple.AppKit      0x92e85ddc old_loadNib + 0xf4
    6   com.apple.AppKit      0x92e3a80c +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:] + 0x35c
    7   com.apple.AppKit      0x92eb95c8 +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:] + 0x9c
    8   com.apple.AppKit      0x92ecadbc +[NSBundle(NSNibLoading) loadNibNamed:owner:] + 0x174
    9   com.apple.AppKit      0x92eb9430 NSApplicationMain + 0x174
    10  main.ob              0x000a4f74 main + 0x38 (main.m:13)
    11  com.apple.myCocoaApp 0x00001b08 start + 0x1c8
    12  dyld                  0x8fe1a558 _dyld_start + 0x64


    Ca plante dans [MyDataSource init] + 0x100 (MyDataSource.m:15)
  • muqaddarmuqaddar Administrateur
    14:35 modifié #8
    Merci à  tous les deux.
    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. ;)
Connectez-vous ou Inscrivez-vous pour répondre.