Objectif C - obtenir le numéro de ligne ou full stack trace du débogueur erreur?
Est-il possible d'obtenir un numéro de ligne pour le code source (ou tout ce qui permet de déboguer où est le problème) à partir du débogueur, qui indique l'endroit où le problème est originaire?
J'obtiens une erreur:
-[NSCFArray objectAtIndex:]: index (-1 (or possibly larger)) beyond bounds (9)
qui signifie évidemment que je vais sortir des limites à un certain point, cependant, si c'est possible je voudrais avoir quelques informations pour m'aider à résoudre le problème.
Je suis de placer un point d'arrêt et d'essayer de passer par le programme ligne par ligne, mais c'est un processus fastidieux. Merci!
Vous devez vous connecter pour publier un commentaire.
Lorsque le débogueur s'arrête, allez dans le "Navigateur de Débogage" et assurez-vous que le curseur sur le fond est tout le chemin vers la droite.
Scanner votre œil vers le bas à partir du point où l'exception est levée, et vous devriez venir à votre propre code. Cliquez sur la méthode appropriée/nom de la fonction et le code sera ouvert dans l'éditeur.
Si vous ne voyez pas tout de vos propres méthodes dans la trace de la pile, à l'exception peut avoir été transmis par l'intermédiaire d'un
performSelector
de style appel auquel cas la trace de la pile est allé. Si c'est le cas, vous pouvez obtenir une meilleure information par l'ajout d'un "À Jeter" l'exception " point de rupture. D'abord passer en mode "point d'arrêt navigator":Puis cliquez sur le signe plus et choisissez "Ajouter une Exception de point d'arrêt..."
Créer un "À Jeter" point de rupture:
Cela va arrêter le débogueur au point exact de l'exception est levée, et vous obtenez un meilleur suivi de la pile. C'est une bonne idée d'avoir une exception du point d'arrêt, comme cela a permis à tous les temps, mais vous permettra de recevoir à l'occasion des internes des exceptions de la Pomme de code (par exemple, lors de l'utilisation de QLPreviewController, MPMoviePlayerController).
Vous devriez également envisager l'utilisation de la NSSetUncaughtExceptionHandler.
(Vous pouvez enregistrer le rapport de crash du disque, vérifiez prochain démarrage si un nouveau crash a été enregistré, de le joindre à un e-mail, etc.)
mettre ceci dans votre didFinishLaunchingWithOptions méthode:
et de mettre en œuvre votre gestionnaire d'exception: