J'ai défini des points d'arrêt mais Xcode semble les ignorer.
J'ai défini des points d'arrêt mais Xcode semble les ignorer.
Réponses:
Tout d'abord, je suis d'accord à 100% avec les personnes précédentes qui ont dit désactiver Load Symbols Lazily
.
J'ai encore deux choses à ajouter.
(Ma première suggestion semble évidente, mais la première fois que quelqu'un me l'a suggérée, ma réaction est allée dans ce sens: "allez, s'il vous plaît, vous pensez vraiment que je ne saurais pas mieux ... oh.")
Assurez-vous de ne pas avoir défini par inadvertance «Configuration de build actif» sur «Release».
Sous "Cibles" dans l'arborescence graphique de votre projet, faites un clic 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 qu'elle est VÉRIFIÉE (aka ON). Vous pouvez également essayer de trouver (également dans Target >> Get Info) une propriété appelée "Debug Information Format" et la définir sur "Dwarf with dsym file".
Il existe un certain nombre d'autres propriétés sous Cible >> Obtenir des informations qui peuvent vous affecter. Recherchez des éléments tels que l'optimisation ou la compression du code et désactivez ces éléments (je suppose que vous travaillez en mode débogage, ce n'est donc pas un mauvais conseil). Recherchez également des éléments tels que supprimer des symboles et assurez-vous que ce paramètre est également désactivé. Par exemple, "Supprimer le produit lié" doit être défini sur "Non" pour la cible de débogage.
Dans Xcode 7, ce qui a fonctionné pour moi était:
1) Assurez-vous que la cible -> schéma -> Exécuter - est en mode débogage (était Release)
2) Assurez-vous de cocher l'option "Debug executable" voir ci-dessous:
Accédez aux préférences de débogage Xcode. Assurez-vous que "Charger les symboles paresseusement" n'est PAS sélectionné.
J'avais juste ce même problème (encore). Après avoir vérifié trois fois "Charger les symboles paresseusement" et dépouillé et débogué les indicateurs de génération d'informations, j'ai fait ce qui suit:
Vous pouvez accomplir la même tâche dans Finder en cliquant avec le bouton droit / option-clic sur le bundle .xcodeproj et en sélectionnant "Afficher le contenu du paquet".
Lorsque j'ai redémarré Xcode, toutes mes fenêtres étaient réinitialisées aux positions par défaut, etc., mais les points d'arrêt fonctionnaient!
Une autre raison
Définir DeploymentPostprocessing
sur NO dans BuildSettings - détails ici
En bref -
L'activation de ce paramètre indique que les binaires doivent être supprimés et que les informations de mode de fichier, de propriétaire et de groupe doivent être définies sur des valeurs standard. [DEPLOYMENT_POSTPROCESSING]
YES
uniquement dans mon subproject
, puis les points d'arrêt ne fonctionnaient pas subprojects
. Et après s'être installé NO
, c'était parfait!
Voir cet article: Les points d'arrêt ne fonctionnent pas dans Xcode? . Vous pourriez pousser "Exécuter" au lieu de "Déboguer" auquel cas votre programme ne s'exécute pas avec l'aide de gdb, auquel cas vous ne pouvez pas vous attendre à ce que les points d'arrêt fonctionnent!
Une des solutions possibles pour cela pourrait être .... allez dans Produit> Schéma> Editer le schéma> .. Sous Exécuter> info> Exécutable, cochez "Debug executable".
Cela m'a mis dans Xcode 9 pendant une demi-journée frustrante. Cela a fini par être un simple paramètre de débogage.
Allez Déboguer> Déboguer le flux de travail et assurez-vous que «Toujours afficher le désassemblage» est désactivé. Aussi simple que cela. :(
Est venu sur cette page avec le même problème (le code C dans Xcode 6 ne s'arrêtant pas aux points d'arrêt) et aucune des solutions ci-dessus n'a fonctionné (le projet était pratiquement prêt à l'emploi, en ce qui concerne les paramètres, donc peu de chance pour les paramètres du débogueur de être réglé sur la mauvaise valeur) ...
Après avoir perdu un certain temps à réduire le problème, j'ai finalement trouvé le coupable (pour mon code):
Xcode (/ LLVM) n'aime pas les #line
commandes de préprocesseur de style Bison .
Leur suppression a résolu le problème (le débogueur s'est arrêté à mes points d'arrêt).
J'ai beaucoup de problèmes avec les points d'arrêt dans Xcode (2.4.1). J'utilise un projet qui contient simplement 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épart (c'est-à-dire celui contenant le point d'entrée de mon code). Si les seuls points d'arrêt se trouvent dans 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 qui contient la ligne source sur laquelle se trouve le point d'arrêt.
Si j'essaie de supprimer ou de désactiver des points d'arrêt via un autre projet, l'action ne prend parfois pas effet, même si le débogueur l'indique. Je vais donc me retrouver à casser sur des points d'arrêt désactivés, ou sur un point d'arrêt (maintenant invisible) que j'ai supprimé plus tôt.
Mes points d'arrêt ne fonctionnent pas, puis j'ai créé / nettoyé toutes les cibles pour les faire fonctionner à nouveau.
Je pense que le problème pourrait être une incompatibilité entre les versions de l'appareil et Xcode. J'ai ce problème lorsque je tente de déboguer sur mon iPhone 4S sous iOS 5.0.1. J'utilise toujours Xcode 3.2.5. J'ai récupéré les symboles du combiné en sélectionnant «utiliser cet appareil pour le développement» dans la fenêtre de l'organiseur. Ce téléphone refuse cependant le point d'arrêt. Mon ancien 3GS aura un point d'arrêt, le même projet Xcode, les mêmes paramètres ... juste un appareil différent et il exécute iOS 4.0. Je suppose que c'est un bogue Xcode dans 3.2.5, puisque j'ai les symboles. Ayant essayé toutes les solutions publiées ici jusqu'à présent, j'ai décidé que la solution à mon problème était d'aller de l'avant et de passer à XCode 4. Peut-être que vous ne pouvez pas déboguer efficacement à moins que votre SDK de base ne soit au moins aussi élevé que le système sur lequel déboguer. Peut-être que c'est évident - quelqu'un peut-il confirmer?
Edit: Je mettrai à jour quand je pourrai confirmer que c'est vrai.
La suppression de mon dossier Build a résolu le problème pour moi.
Cela m'est arrivé la même chose dans XCode 6.3.1. J'ai réussi à le réparer en:
Après avoir effectué cette modification, j'ai défini les options Déplacer les points d'arrêt vers le projet et désélectionner les points d'arrêt Partager option , et fonctionne toujours.
Je ne sais pas exactement pourquoi mais cela récupère mes points d'arrêt.
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ésassemblage lors du débogage " a été activé dans mon XCode, ce qui crée ce problème. Quand 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.
Si tout le reste é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, réglez manuellement i sur zéro, puis appuyez sur le bouton de reprise.
J'ai essayé toutes les choses ci-dessus, mais pour moi, désactiver une seule fois les points d'arrêt de débogage, puis les activer a fonctionné.
Lors de la définition de votre point d'arrêt, faites un clic droit et vous devriez obtenir plusieurs options sur la façon dont le point d'arrêt est géré (journal des variables et continuer, suspendre l'exécution, etc.)
Assurez-vous également que "Charger les symboles paresseusement" n'est pas sélectionné 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 distribution 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 "Droits" pour votre mode de débogage (peut-être parce que vous faites des choses avec le trousseau), assurez-vous que ce fichier plist a la ligne "get-task-allow" = YES. Sans cela, 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 paramètres. Le bleu foncé est activé, le gris est désactivé et j'ai parfois vu un bleu pâle qui m'a obligé à cliquer à nouveau sur le point d'arrêt pour le faire passer à la couleur bleu foncé.
À part cela, assurez-vous que vous le lancez avec la commande de débogage et non avec la commande d'exécution. Vous pouvez le faire en appuyant sur option + commande + retour ou sur l'option Go (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é que si vous nettoyez la construction et utilisez la commande tactile sous la construction, ils fonctionnent à nouveau.
En voici une obscure que j'ai rencontrée: si vous travaillez sur une bibliothèque partagée (ou un plugin), vos points d'arrêt deviendront jaunes au démarrage, ce qui pourrait vous amener à marteler votre clavier de frustration et à tuer le processus de débogage. Eh bien, ne fais pas ça! Les symboles ne seront pas chargés tant que l'application n'aura pas chargé la bibliothèque, auquel cas les points d'arrêt deviendront 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.