Question

Quand je m'écrase (pour des raisons que je comprends; ce n'est pas le problème) lorsque j'essaie de faire quelque chose de cacao n'est pas d'accord, comme appeler une méthode qui n'existe pas ou tenter d'insérer NIL dans un ensemble, le débogueur montre le Stack de main () à __pthread_kill, sans aucune des cadres qui étaient présents lorsque le code de crash réel a fonctionné. Il y a un cadre (9e de Main) appelé objc_exception_rethrow. Cela m'amène à croire que Cocoa Touch essaie de faire quelque chose ou autre pour récupérer toutes les exceptions et mourir gracieusement ou quelque chose. Cependant, il est très irritant lors du débogage pour ne pas avoir la possibilité d'utiliser réellement les outils de débogage de XCode4 pour enquêter sur les cadres de pile d'appels, ou même voir où dans mon code je me suis écrasé.

Existe-t-il un moyen de faire en sorte que le comportement OBJC_Exception_Rethrow ne se produise pas, et de vous écraser dès qu'une exception est élevée? Il y a peut-être un paramètre de débogage qui le fait s'écraser plus tôt (au droit temps)? (Je n'ai pas encore gâché avec aucun des paramètres de construction de ce projet.)

Était-ce utile?

La solution 2

J'ai trouvé la réponse: définissez un point d'arrêt sur les exceptions OBJ-C. Il ira au débogueur lorsque Objc_Exception_throw est touché, ce qui est bien. Malheureusement, cela se produit avant l'impression de l'exception, mais nous pouvons y arriver de toute façon (la plupart du temps) en définissant l'action du point d'arrêt pour être (action de débogueur) po *(id *)($ebp + 8).

Autres conseils

Je ne connais aucun paramètre Xcode qui pourrait désactiver le retrait des exceptions. À ma connaissance, ils sont retrouvés par l'exécution. Vous pouvez essayer d'exécuter l'application sans le débogueur attaché et le laisser s'écraser. Le rapport Crash doit contenir une section "Dernière exception Backtrace" qui vous donnera exactement ce dont vous avez besoin dans ce cas.

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