Question

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

Était-ce utile?

La solution

Tout d'abord, je suis tout à fait d'accord avec les précédents qui disaient DÉSACTIVER Charger les symboles de manière distante .

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é, ma réaction a été la suivante: "Allez, s'il te plaît, tu crois vraiment que je ne saurais pas mieux ...... oh . ")

  1. Assurez-vous de ne pas avoir défini accidentellement la " Configuration de construction active " pour "Libérer".

  2. Sous "Cibles" Dans l'arborescence de votre projet, cliquez avec le bouton droit de la souris sur votre cible et effectuez l'option "Obtenir des informations". Recherchez une propriété intitulée "Générer des symboles de débogage". (ou similaire) et assurez-vous que cela est coché (aka ON). Vous pouvez également essayer de trouver (également dans Target > > Obtenir des informations) une propriété appelée "Format des informations de débogage". et définissez-le sur "Dwarf with dsym file".

Un certain nombre d'autres propriétés se trouvent sous Cible > > Obtenez des informations qui pourraient vous affecter. Recherchez des éléments tels que l'optimisation ou la compression de code et désactivez-les (je suppose que vous travaillez en mode débogage, pour que ce ne soit pas un mauvais conseil). Recherchez également des symboles tels que la suppression des symboles et assurez-vous que cette option est également désactivée. Par exemple, "Produit lié en bandes". doit être réglé sur " Non " pour la cible Debug.

Autres conseils

Sous Xcode 7, ce qui a fonctionné pour moi a été:

1) Assurez-vous que la cible - > schéma - > Run - est en mode débogage (était la version)

2) Assurez-vous de cocher l'option " Debug executable " voir ci-dessous:

entrer description de l'image ici

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 le même problème (encore). Après une triple vérification, "Charger les symboles paresseusement". et en supprimant et en déboguant les drapeaux de génération d'informations, j'ai procédé comme suit:

  1. quitter Xcode
  2. ouvrez une fenêtre de terminal et accédez au répertoire du projet
  3. cd dans le répertoire .xcodeproj
  4. efface tout sauf le fichier .pbxproj (j'avais frank.mode1v3 et frank.pbxuser)

Vous pouvez effectuer la même tâche dans le Finder en cliquant avec le bouton droit de la souris sur l’option .xcodeproj et en sélectionnant "Afficher le contenu du package".

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

Pour Xcode 4.x:    Allez au produit > Débogage et décochez la case "Afficher le désassemblage lors du débogage".

Pour Xcode 5.x    Allez à Debug > Déboguer le flux de travail et décochez la case "Afficher le désassemblage lors du débogage".

Voir ce message: points d'arrêt ne fonctionnant pas dans Xcode? . Vous pouvez peut-être appuyer sur "Exécuter". au lieu de " Déboguer " Dans ce cas, votre programme ne fonctionne pas avec l'aide de gdb. Dans ce 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 binaires doivent être supprimés et   les informations relatives au mode de fichier, au propriétaire et au groupe doivent être définies en standard   valeurs. [DEPLOYMENT_POSTPROCESSING]

 entrez la description de l'image ici

Nous sommes arrivés sur cette page avec le même problème (le code C dans Xcode 6 ne s’arrêtant pas aux points de rupture) et aucune des solutions ci-dessus n’a fonctionné (le projet était pratiquement prêt à l'emploi, en termes de paramètres, si peu de chances pour le moindre résultat. paramètres du débogueur à définir sur une valeur incorrecte) ...

Après avoir perdu beaucoup de temps à réduire le problème, j'ai finalement trouvé le coupable (pour mon code):

Xcode (/ LLVM) n'aime pas les commandes du préprocesseur de type Bison #line .

Leur suppression a résolu le problème (le débogueur s’est arrêté à mes points d’arrêt).

Pour Xcode 4:

go Product -> Debug ->  Activate Breakpoints

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

Aller au débogage > Débogage du flux de travail et assurez-vous que "Toujours afficher le désassemblage" est désactivé. Aussi simple que cela. : (

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

Sous build Target - > Paramètres de construction - > Niveau d'optimisation: Passage de " Optimiser pour la vitesse " - > "Pas d'optimisation" (maintenant c'est plus lent mais ça marche)

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 constate parfois que les points d'arrêt ne fonctionnent pas du tout, sauf s'il existe 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 au " niveau inférieur " projets, 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 vous trouvez dans le projet contenant la ligne source sur laquelle le point d'arrêt est activé.

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 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'avais précédemment supprimé.

Mes points d'arrêt ne fonctionnent pas, puis j'ai créé / Nettoyer toutes les cibles pour les faire fonctionner à nouveau.

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 j'essaie 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 ce périphérique pour le développement". dans la fenêtre de l'organiseur. Ce téléphone refuse cependant le point d'arrêt. Mon ancien point d’accès 3GS , , le même projet Xcode, les mêmes paramètres, mais un périphérique différent fonctionnant sous iOS 4.0. Je suppose que c’est un bogue Xcode dans 3.2.5, puisque j’ai les symboles. Après avoir 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 mettre à niveau vers XCode 4. Peut-être vous ne pouvez pas déboguer efficacement à moins que votre SDK de base ne soit au moins aussi haut que le système sur lequel déboguer. C’est peut-être une évidence - quelqu'un peut-il confirmer?

Modifier: je mettrai à jour lorsque je peux confirmer que cela est vrai.

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

Pour cela, ainsi que pour Xcode 6 et supérieur, assurez-vous que le bouton d'état des points d'arrêt est activé (le bouton en forme de flèche bleue):

entrer la description de l'image ici

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. En quelque sorte, le " Afficher le désassemblage lors du débogage " a été activé dans mon XCode 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 le trouverez sous: Produit- > Processus de débogage- > Afficher le désassemblage 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 é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 à 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 sur 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 sûr que cela soit nécessaire).

Après avoir effectué ce changement, je redéfinis les options Déplacer les points d'arrêt dans le projet et désélectionne l'option Partager les points d'arrêt , et fonctionne toujours.

Je ne sais pas exactement pourquoi, mais cela me permet de récupérer mes points d'arrêt.

J’ai essayé toutes les solutions ci-dessus, mais pour moi, ne désactiver que les points d’interruption du débogage, puis les activer, a fonctionné.

C’est peut-être l’une des raisons possibles de cette situation .... allez à Produit > Régime > Régime > .. sous Exécuter > Info > Exécutable. vérifiez "Debug executable".

Lorsque vous définissez 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é (enregistrer les journaux et continuer, suspendre l'exécution, etc.)

Assurez-vous également que les symboles "Charger les symboles paresseusement" n'est pas sélectionné dans les préférences de débogage.

(S'applique à Xcode 3.1, vous n'êtes 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 le périphérique.

Une autre chose à vérifier est que si vous avez un " Droits (Droits) " fichier plist pour votre mode de débogage (peut-être parce que vous utilisez des trucs avec le trousseau), assurez-vous que ce fichier plist contient le message "get-task-allow". = OUI ligne. 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 nécessitait que je clique de nouveau sur le point d’arrêt pour le faire passer à la couleur bleu foncé.

Sinon, assurez-vous de le lancer avec la commande debug et non la commande run. Vous pouvez le faire en tapant option + commande + retour ou l'option Aller (déboguer) du menu Exécuter.

J'ai Xcode 3.2.3 SDK 4.1 Les points d'arrêt échoueront de manière aléatoire. J'ai trouvé que si vous nettoyez la construction et utilisez la commande tactile sous la construction, ils fonctionnent à nouveau.

Voici un cas obscur que j'ai rencontré: 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 à enfoncer votre clavier dans la frustration et à tuer le débogage. processus. Eh bien, ne fais pas ça! Les symboles ne seront pas chargés tant que l'application n'aura pas chargé la bibliothèque. Les points d'arrêt deviendront 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.

Je rencontrais le 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'à ce que mon Safari soit passé de la version 4.0.5 à la version 5.1. Une fois que j'ai réinstallé Safari 4.0.5, tous les points d'arrêt ont commencé à fonctionner sans modifier aucun paramètre Xcode.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top