Points d'arrêt non souhaités.

tabliertablier Membre
Depuis quelques temps, chaque fois que je dé-bug de l'objective-C, quand le programme passe sur un NSMakeRange:
FOUNDATION_STATIC_INLINE NSRange NSMakeRange(unsigned int loc, unsigned int len) {<br />&nbsp; &nbsp; NSRange r;<br />&nbsp; &nbsp; r.location = loc;<br />&nbsp; &nbsp; r.length = len;<br />&nbsp; &nbsp; return r;<br />}<br />

GDB s'arrète sur chaque ligne comme s'il trouvait des point d'arrêts sur toutes les lignes de NSMakeRange. C'est vrai aussi pour les autres FOUNDATION_STATIC_INLINE que l'on trouve dans NSRange.h.Je pense que j'ai du valider cela par erreur, mais je ne trouve pas ou ni comment le dévalider!!

Quelqu'un aurait-il une idée pour dévalider cela?

Réponses

  • AliGatorAliGator Membre, Modérateur
    21:53 modifié #2
    Hello,

    Dans le menu Debug -> Breakpoints, tu n'as pas rajouté des breakpoints globaux qui s'arrêtent sur un appel de fonction donné ? (voir dans Project Breakpoints ou Global Breakpoints)
  • tabliertablier Membre
    21:53 modifié #3
    Eh bien non!  je n'ai pas de Brkpt global répertorié dans cette fenêtre.
    Si je met des Brkpts dans mes sources ils apparaissent dans la liste des "project breakpoints" et si je les enlève, les listes apparaissent vides!

    Une autre idée?
  • Philippe49Philippe49 Membre
    octobre 2007 modifié #4
    Si je ne m'abuse, les fonctions déclarées inline voient leur code exécutable inclus dans le code de la fonction appelante. Il est donc logique que le débogueur traite ces instructions comme celles de la fonction appelante.

    c'est marrant d'ailleurs ce code de NSMakeRange. Pourquoi n'ont-ils pas fait simplement
                      return (NSRange){loc,len};

    peut-être pour se réserver le droit de changements ultérieurs ?
  • tabliertablier Membre
    21:53 modifié #5
    Si je ne m'abuse, les fonctions déclarées inline voient leur code exécutable inclus dans le code de la fonction appelante. Il est donc logique que le débogueur traite ces instructions comme celles de la fonction appelante.


    Je veux bien croire cela. Mais jusqu'à  récemment la mise en place de pts d'arrêt ne provoquait pas d'arrêt dans les fonctions inline, du moins je ne l'avais pas constaté. J'ai donc probablement (et malencontreusement) changé quelque chose quelque part.
    J'ai essayé de voir les variables d'environnement de GDB. Pas évident du tout!

    Si je ne trouve rien d'ici une semaine, je réinstallerai Xcode.
  • AliGatorAliGator Membre, Modérateur
    21:53 modifié #6
    Et si tu refais un nouveau projet Xcode et que tu réimportes tes fichiers source dedans, le problème persiste-t-il ?
    Si je relis ton premier post, tu dis "chaque fois que je débug de l'Objective-C" donc j'imagine que tu as testé sur plusieurs projets, mais bon comme certains d'entre nous bossent tout le temps sur un unique gros projet je me dis que c'est peut-être pas le cas...

    Et puis faut mieux tester sur un nouveau projet c'est quand même moins contraignant que de réinstaller Xcode, ce qui en plus ne résoudra pas forcément le problème (si c'est des réglages de Prefs/User Defaults ça changera rien)
  • Philippe49Philippe49 Membre
    21:53 modifié #7
    Bon j'ai fait un essai simple sur mon matériel, j'ai également les points d'arrêts dans la fonction NSMakeRange(), cela me semble donc être le comportement normal.




    [Fichier joint supprimé par l'administrateur]
Connectez-vous ou Inscrivez-vous pour répondre.