Pourquoi mes points d’arrêt ne fonctionnent-ils pas?

J’ai des points d’arrêt définis mais Xcode semble les ignorer.

Tout d’abord, je suis d’accord à 100% avec les personnes qui ont dit de désactiver Load Symbols Lazily .

J’ai deux autres choses à append.

(Ma première suggestion semble évidente, mais la première fois que quelqu’un me l’a suggéré, ma réaction a été la suivante: “Allez, s’il vous plait, vous pensez vraiment que je ne saurais pas mieux …… oh.”)

  1. Assurez-vous de ne pas avoir défini accidentellement “Active Build Configuration” sur “Release”.

  2. Sous “Cibles” dans l’arborescence graphique de votre projet, cliquez avec le bouton droit sur votre cible et faites “Obtenir des informations”. Recherchez une propriété nommée “Générer des symboles de débogage” (ou similaire) et assurez-vous que cela est vérifié (aka ON). En outre, vous pouvez essayer de trouver (également dans Target >> Get Info) une propriété appelée “Format des informations de débogage” et de la définir sur “Dwarf with dsym file”.

Il existe un certain nombre d’autres propriétés sous Cible >> Obtenir des informations susceptibles de vous concerner. Recherchez des choses comme l’optimisation ou la compression du code et désactivez ces éléments (je suppose que vous travaillez en mode débogage, ce qui n’est pas un mauvais conseil). Recherchez également des éléments tels que des symboles de décapage et assurez-vous que cette option est également désactivée. Par exemple, “Ssortingp Linked Product” doit être défini sur “No” pour la cible de débogage.

Accédez aux préférences de débogage Xcode. Assurez-vous que “Charger les symboles paresseusement” n’est PAS sélectionné.

Dans Xcode 7, ce qui a fonctionné pour moi était:

1) Assurez-vous que la cible -> schéma -> Exécuter – est en mode de débogage (a été libéré)

2) Assurez-vous de cocher l’option “Debug executable” ci-dessous:

entrer la description de l'image ici

Je viens d’avoir ce même problème (encore une fois). Après avoir vérifié trois fois “Charger les symboles paresseusement” et effacer et déboguer les indicateurs de génération d’informations, j’ai fait ce qui suit:

  1. quitter Xcode
  2. ouvrir une fenêtre de terminal et cd dans le répertoire du projet
  3. cd dans le répertoire .xcodeproj
  4. tout supprimer sauf le fichier .pbxproj (j’avais frank.mode1v3 et frank.pbxuser)

Vous pouvez accomplir la même tâche dans finder en cliquant avec le bouton droit / option sur le paquet .xcodeproj et en sélectionnant “Afficher le contenu du paquet”.

Lorsque j’ai redémarré Xcode, toutes mes fenêtres avaient été réinitialisées aux positions par défaut, etc., mais les points d’arrêt fonctionnaient!

Pour Xcode 4.x: Goto Product> Debug Workflow et décochez “Show Disassembly When Debugging”.

Pour Xcode 5.x, allez à Debug> Debug Workflow et décochez “Show Disassembly When Debugging”.

Voir ce post: Les points d’arrêt ne fonctionnent pas dans Xcode? . Vous pourriez pousser “Run” au lieu de “Debug”, auquel cas votre programme ne fonctionne pas avec l’aide de gdb, auquel cas vous ne pouvez pas vous attendre à ce que les points d’arrêt fonctionnent!

Une autre raison

Définissez DeploymentPostprocessing sur NO dans BuildSettings – détails ici

En bref –

L’activation de ce paramètre indique que les fichiers binarys doivent être supprimés et que les informations relatives au mode fichier, au propriétaire et au groupe doivent être définies sur des valeurs standard. [DEPLOIEMENT_POSTPROCESSING]

entrer la description de l'image ici

Nous sums arrivés à cette page avec le même problème (le code C dans Xcode 6 ne s’arrêtait pas aux points d’arrêt) et aucune des solutions ci-dessus n’a fonctionné (le projet était pratiquement prêt à être mis à la mauvaise valeur) …

Après avoir perdu pas mal de temps en réduisant le problème, j’ai finalement trouvé le coupable (pour mon code):

Xcode (/ LLVM) n’aime pas les commandes de préprocesseur #line style #line .

En les supprimant, le problème a été résolu (le débogueur s’est arrêté à mes points d’arrêt).

Pour Xcode 4:

 go Product -> Debug -> Activate Breakpoints 

J’ai beaucoup de problèmes avec les points d’arrêt dans Xcode (2.4.1). J’utilise un projet qui ne contient que d’autres projets (comme une solution dans Visual Studio). Je trouve parfois que les points d’arrêt ne fonctionnent pas du tout à moins qu’il y ait au moins un point d’arrêt défini dans le projet de démarrage (c’est-à-dire celui contenant le point d’entrée de mon code). Si les seuls points d’arrêt sont des projets de “niveau inférieur”, ils sont simplement ignorés.

Il semble également que Xcode ne gère correctement les opérations de point d’arrêt que si vous agissez sur le point d’arrêt lorsque vous êtes dans le projet contenant la ligne source sur laquelle se trouve le point d’arrêt.

Si j’essaie de supprimer ou de désactiver les points d’arrêt via un autre projet, l’action ne prend parfois pas effet, même si le débogueur indique qu’il existe. Je vais donc me retrouver sur des points d’arrêt désactivés, ou sur un point d’arrêt (désormais invisible) que j’ai supprimé plus tôt.

Je pense que le problème pourrait être une incompatibilité entre les versions de périphérique et Xcode. J’ai ce problème lorsque vous essayez de déboguer sur mon iPhone 4S sous iOS 5.0.1. J’utilise toujours Xcode 3.2.5. J’ai obtenu les symboles du combiné en sélectionnant “Utiliser cet appareil pour le développement” dans la fenêtre Organiseur. Ce téléphone refuse de casser cependant. Mon ancien 3GS va briser le même point, le même projet Xcode, les mêmes parameters … juste un périphérique différent et il tourne sous iOS 4.0. Je suppose que c’est un bug Xcode dans 3.2.5, puisque j’ai les symboles. Après avoir essayé toutes les solutions affichées ici, j’ai décidé que la solution à mon problème était de procéder à la mise à niveau vers XCode 4. Vous ne pouvez peut-être pas déboguer efficacement à moins que votre SDK de base soit au moins aussi élevé que le système de débogage. Peut-être que c’est évident – quelqu’un peut-il confirmer?

Edit: je vais mettre à jour quand je peux confirmer que c’est vrai.

La suppression de mon dossier Build a résolu le problème pour moi.

Pour cela, et pour Xcode 6 et ci-dessus, assurez-vous que le bouton d’état du point d’arrêt est activé (le bouton en forme de flèche bleue):

entrer la description de l'image ici

Solution pour moi avec XCode 9.4.1 (ne s’est arrêté à aucun point d’arrêt):

Sous build Target -> Build Settings -> Optimization Level: commuté de “Optimize for speed” -> “Aucune optimisation” (maintenant c’est plus lent mais ça marche)

Mes points d’arrêt n’ont pas fonctionné et j’ai ensuite créé Build / Clean All Targets pour qu’ils fonctionnent à nouveau.

Dans Xcode 4

 - Product menu > Manage Schemes - Select the scheme thats having debugging problems (if only one choose that) - Click Edit button at bottom - Edit Scheme dialog appears - in left panel click on Run APPNAME.app - on Right hand panel make sure youre on INFO tab - look for drop down DEBUGGER: - someone had set this to None - set to LLDB if this is your preferred debugger - can also change BUILD CONFIGURATION drop down to Debug - but I have other targets set to AdHoc which debug fine once Debugger is set 

J’ai trouvé le problème. D’une manière ou d’une autre, ” Afficher le déassembly lors du débogage ” était activé dans mon XCode, ce qui crée ce problème. Lorsque je l’ai désactivé, tout mon débogueur s’est arrêté dans mon code source.

Vous pouvez le trouver sous: Product->Debug Workflow->Show Disassembly lors du débogage.

Vous pouvez activer / désactiver les points d’arrêt dans le menu déroulant entrer la description de l'image ici

Si tout le rest échoue, au lieu d’un point d’arrêt, vous pouvez appeler la fonction suivante:

 void BreakPoint(void) { int i=1; #if !__OPTIMIZE__ printf("Code is waiting; hit pause to see.\n"); while(i); #endif } 

Pour reprendre, définissez manuellement la valeur i sur zéro, puis appuyez sur le bouton de reprise.

Il m’est arrivé la même chose dans XCode 6.3.1. J’ai réussi à le réparer en:

  • Aller à Affichage-> Navigateurs-> Afficher les navigateurs de débogage
  • Cliquez avec le bouton droit de la souris dans la racine du projet -> Déplacer les points d’arrêt (si l’option Utilisateur est sélectionnée)
  • (J’ai également sélectionné l’option partager les points d’arrêt , même si je ne suis pas certain que cela soit nécessaire).

Après avoir effectué cette modification, je redéfinis les options Déplacer les points d’arrêt sur le projet et désélectionne l’option Partager les points d’arrêt .

Je ne sais pas exactement pourquoi mais cela me ramène à mes points de rupture.

Cela m’a eu dans Xcode 9 pour une demi-journée frustrante. Cela a fini par être un simple paramètre de débogage.

Allez sur Debug> Debug Workflow et assurez-vous que «Always Show Disassembly» est désactivé. Aussi simple que cela. 🙁

Lorsque vous définissez votre point d’arrêt, cliquez avec le bouton droit de la souris et vous devriez avoir plusieurs options sur la manière dont le point d’arrêt est géré (enregistrer vars et continuer, interrompre l’exécution, etc.)

Assurez-vous également que les “Symboles de chargement” ne sont pas sélectionnés dans les préférences de débogage.

(S’applique à Xcode 3.1, pas sûr des versions passées / futures)

Assurez-vous également que la dissortingbution AppStore de l’application n’est pas également installée sur l’appareil.

Une autre chose à vérifier est que si vous avez un fichier plist “Entitlements” pour votre mode debug (peut-être parce que vous faites des trucs avec le trousseau), assurez-vous que le fichier plist a la ligne “get-task-allow” = YES. Sans elle, le débogage et la journalisation seront interrompus.

Il semble y avoir 3 états pour les points d’arrêt dans Xcode. Si vous cliquez dessus, ils passeront par les différents parameters. Le bleu foncé est activé, le gris est désactivé et j’ai parfois vu un bleu pâle nécessitant que je clique à nouveau sur le point d’arrêt pour le rendre bleu foncé.

En dehors de cela, assurez-vous de le lancer avec la commande de débogage et non avec la commande run. Vous pouvez le faire en appuyant sur l’option + commande + retour ou l’option Aller (débogage) dans le menu Exécuter.

J’ai Xcode 3.2.3 SDK 4.1 Les points d’arrêt échoueront au hasard. J’ai trouvé si vous nettoyez la construction et utilisez la commande tactile sous build, ils fonctionnent à nouveau.

Voici une version obscure: si vous travaillez sur une bibliothèque partagée (ou un plug-in), vos points d’arrêt deviendront jaunes au démarrage, ce qui pourrait vous amener à frustrer votre clavier et à éliminer le processus de débogage. Eh bien, ne fais pas ça! Les symboles ne seront pas chargés tant que l’application ne charge pas la bibliothèque, les points d’arrêt devenant alors valides. J’ai rencontré ce problème avec un plugin de navigateur … Les BP ont été désactivés jusqu’à ce que je navigue sur une page qui instancie mon plugin.

J’étais confronté au même problème lorsque je voulais déboguer un plug-in Web où l’exécutable personnalisé était Safari 5.1. Il fonctionnait bien jusqu’à la mise à niveau de mon Safari à la version 5.1 de la version 4.0.5. Une fois que j’ai installé Safari 4.0.5 à nouveau, tous les points d’arrêt ont commencé à fonctionner sans modifier aucun paramètre Xcode.

Je n’ai pas fait Xcode un peu, mais je vous recommande de désactiver “Zerolink” et “Load Symbols Lazily”; cela résoudra la plupart des problèmes. Zerolink est une abomination quand même.

Je crois qu’un projet peut également être corrompu en ce qui concerne les points d’arrêt. J’ai un projet, par exemple, qui ne rompra PAS les points d’arrêt dont il se souvient de la session précédente. J’ai d’abord écrit à ce sujet ici