65 votes

Xcode 4.2 saute à main.m chaque fois après l’arrêt du simulateur

Ce n'est plus un général de l'agacement. Chaque fois après l'arrêt du simulateur, Xcode, sauts à la main.m pour une raison quelconque. Sur le menu de navigation de gauche, il saute le Navigateur de Débogage.

Est-il un moyen de résoudre ce problème?

C'est ennuyeux car je suis peut-être le test d'une certaine ligne de code, et maintenant, à chaque fois, j'ai besoin de faire quelques clics juste pour revenir à ce code.

Ce problème n'est pas nouveau, semble s'aggraver. Au moment de la rédaction du présent, j'ai été sur les semences génétiquement modifiées, mais ce problème persiste dans XCode 4.2 final. Ce n'était pas un problème dans les précédentes versions de XCode.

15voto

Krishnabhadra Points 18384

Quand nous commençons à débogage à partir de xcode, le débogueur se met en place pour surveiller les signaux à partir de l'OS. Quand on appuie sur le bouton stop dans XCode (ou appuyer sur cmd + R, qui cesse d'exister en instance en cours d'exécution, puis essayez de démarrer un nouveau, un peu equalant à nous appuyer sur arrêter manuellement, d'abord, puis exécuter) SIGKILL est envoyé au débogueur.

Chaque fois que la cause de l'interruption de l'extérieur de l'application (en d'autres termes tous les cas où SIGKILL est envoyé, comme le bouton d'arrêt de la presse) , le débogueur sauts d' main, puisque la principale est la racine de l'application et de l'endroit où votre application répond aux OS. Débogueur n'a aucun moyen de déterminer la cause de cette SIGKILL est émis (en appuyant sur le bouton stop dans xcode/ appuyez sur cmd + R/ supprimer l'application de barre multitâche, etc), mais il traite de SIGKILL comme à l'extérieur de l'interrompre et de rien avec votre code. Donc, il saute à la main.

Si la cause de l'interruption de l'intérieur de l'application (comme l'app crash/SIGABRT) débogueur gère et les sauts à l'endroit de la collision, ce qui nous avons l'habitude de voir.

Je ne considère pas cela comme un xcode bug, mais plutôt une façon normale de la manipulation de SIGKILL. Mais si vous voulez rester dans votre code et ne veulent pas sauter à main, vous pouvez faire deux choses

  1. Vous pouvez faire en tant que Gabe a suggéré. Comme BBonified dit, c'est comme une bande-aide, mais je pense que cela devrait fonctionner (personnellement je n'ai jamais essayé)

  2. Signaler un bug/demande pour une fonctionnalité ici. Permettez-moi de vous dire que vous n'êtes pas le premier à le faire. Déjà un bug a été signalé. Voir ce et ce. Mais je n'ai pas beaucoup d'espoir d'une action positive de la Pomme

Et je suis d'accord avec vous, c'est parfois ennuyeux. Surtout si vous avez vécu différemment dans les précédentes versions de XCode. Mais nous ne pouvons prendre ce qu'ils donnent.

7voto

juggleware Points 844

J'ai essayé ce que David a suggéré mais cela n'a pas fonctionné pour moi, alors j'ai essayé quelque chose de similaire:

  1. Ouvrez Préférences, sélectionnez l'onglet Comportements.
  2. Sélectionnez "Exécuter inopinément" dans la colonne de gauche.
  3. Sélectionnez "Afficher le débogueur avec les vues actuelles".

J'utilise Xcode version 4.2 build 4D199.

EDIT : Cela a fonctionné pendant environ 15 minutes. Ensuite, il est revenu à faire apparaître main.m dans l'éditeur.

6voto

David Points 69

J'ai eu le même problème et c'ÉTAIT vraiment chiant, surtout quand vous étiez dans le milieu de débogage, arrêter/lancer l'application plusieurs fois dans une rangée après de petites modifications.

Tout est résoluble par le biais des paramètres dans Xcode les préférences de l'utilisateur:

  • Il suffit d'aller à "exécuter termine"
  • Là, trouver le "Spectacle" de la ligne et cliquez sur la case à cocher
  • Sur la même ligne modifier la cible d'aller à "Actuel" dans le menu déroulant.

Là vous allez. Xcode ne déplacez pas votre écran d'édition à partir de maintenant. Profitez de.

PS: Xcode version 4.2 Build 4C199

1voto

Gabe Points 2154

Allez dans Préférences -> Comportements. Choisissez "Run Completes" dans la partie gauche. Cochez la case "Afficher l'onglet" et entrez un nom d'onglet. J'utilise "Edit". Ainsi, chaque fois que vous vous arrêtez, vous serez toujours de retour dans un onglet appelé Modifier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X