135 votes

Ce qui est un moyen fiable de faire une application iOS crash?

Je veux tester mon application rapport d'incident dans le domaine délibérément l'avoir crash lorsque l'utilisateur effectue une action spécifique que d'un réel de l'utilisateur est peu probable de faire accidentellement.

Mais ce qui est un bon moyen fiable de faire de l'app crash qui n'est pas de créer une alerte au moment de la compilation?

Edit: Notez que de nombreux apparemment évidente à cette question des réponses suite à des exceptions que de se faire attraper par le Cacao et donc n'ont pas de résultats dans l'application crash.

138voto

Daij-Djan Points 18696

Cause d'un mauvais accès

strcpy(0, "bla");

Remarque: bien que cela fonctionne sur n'importe quel système je sais -- dans une future version du runtime C OU le compilateur cela pourrait ne pas conduire à un crash plus. voir Est de déréférencement de pointeur null comportement indéfini en Objective-C?)

96voto

djromero Points 11713

Mon chouchou:

assert(! "crashing on purpose to test <insert your reason here>");

Un classique:

kill( getpid(), SIGABRT );

Et certains pr0n:

*(long*)0 = 0xB16B00B5;

Tous d'entre eux de générer des accidents capturé par mon crash de l'outil de reporting.

27voto

Dietrich Epp Points 72865

Depuis que nous utilisons tous Clang pour iOS, c'est assez fiable:

__builtin_trap();

Cela a l'avantage qu'il est conçu pour exactement cet effet, de sorte qu'il ne devrait pas générer les avertissements du compilateur ou d'erreurs.

24voto

kmkaplan Points 10338

abort(); provoque un arrêt anormal... C'est un accident.

16voto

wirrwarr Points 179

Méconnu du sélecteur de crash:

NSObject * object = [[NSObject alloc] init];
[object performSelector:@selector(rgkjnjrstjshrtnogt)];

Ou de l'indice au-delà lié exception:

NSArray * array = [NSArray array];
[array objectAtIndex:5];

Ou vous pouvez lancer votre propre personnalisé d'exception.

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