J'ai un gros problème avec mon application iOS: elle se bloque parfois sans erreur de débogage détaillée. La trace de la pile est vide. Ce sont les deux seules lignes de la trace de la pile:
dans com.Apple.main-thread
.
L'erreur sur le débogueur Xcode (avec le périphérique connecté):
malloc: *** error for object 0x208a7614: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
J'ai défini un point d'arrêt dans malloc_error_break avec libsystem_c.dylib sans aucun retour du débogueur. Je n'ai aucune idée pour résoudre ce problème.
Pour trouver la source du problème, dans Xcode, accédez à Produit> Schéma> Modifier le schéma, puis sous l'onglet Diagnostics, activez tous les paramètres Malloc et Guard Malloc.
Avec cela, exécutez à nouveau votre application et Xcode s’arrêtera sur la ligne à l’origine du problème.
Puisque vous êtes dans le débogueur, vous devriez regarder l’emplacement mémoire 0x208a7614
et voir ce qui est là. Les données en mémoire peuvent être utiles pour déterminer ce qui ne va pas.
Ce qui se passe est l'un des suivants:
vous libérez un objet deux fois,
vous libérez un pointeur qui n'a jamais été attribué
vous écrivez via un pointeur invalide qui indiquait précédemment un objet déjà libéré
Comme la trace de la pile est vide, il peut être utile d’ajouter des instructions de journal de débogage à votre code à différents endroits pour voir si vous pouvez préciser où se situe le problème dans le code. L'utilisation des outils de mémoire dans Instruments peut également aider. Vous pouvez essayer d’activer NSZombies, mais cela ressemble à un problème d’allocation C et non pas à un problème Objective-C.
De plus, y a-t-il autre chose d'écrit sur la console avant le crash? Si tel est le cas, cela peut vous indiquer d'où vient le problème.
salut les gars, j'ai trouvé cette solution si vous utilisez l'interface nib ou xib et que vous rencontrez ce problème lorsque vous voulez pousser un objet viewcontroller, puis quelque temps cette erreur se produira et que votre application se plantera (spécialement une erreur dans l'iPad) Voici le Solution:
// Format comme ça
UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:yourViewControllerObj];
[self.navigationController presentViewController:nav animated:true completion:nil];
N'essayez pas de pousser dans cette condition.
Si vous avez ce problème. allez à: produit-> schéma-> diagnostic-> puis activez mollic gaurd Edge et objet zombie puis fermez puis allez produit-> arrêtez à nouveau product-build et exécutez. bonne chance