J'ai activé la vérification de la mémoire dans Xcode (Modifier le schéma -> Options). J'obtiens maintenant les éléments suivants lorsque j'effectue le débogage de l'appareil: dyld: could not load inserted library '/usr/lib/libgmalloc.dylib' because image not found
. La mesure a été prise de manière proactive dans l'espoir de détecter des erreurs au début du cycle.
La vérification de la mémoire n'est-elle pas valide sur un appareil? Il semble valide car il a été reconnu et étudié selon http://lists.Apple.com/archives/xcode-users/2012/Mar/msg00271.html . De plus, Xcode n'a eu aucune plainte lors de la compilation et du lien. Si ce n'est pas valable pour un périphérique, pourquoi Xcode insère-t-il la bibliothèque? Y a-t-il des solutions? Google a renvoyé quelques hits , mais je n'ai vu aucune solution concrète.
Comment activer Xcode Guard Malloc lors du débogage sur un appareil?
Pour contourner ce problème, j'ai créé deux nouveaux schémas Xcode. L'un est nommé "XXX Device" et n'inclut pas les gardes malloc; le second est "XXX Simulator" et comprend les gardes malloc.
L'ajout d'un schéma à des fins de périphérique/simulateur est discutable (http://www.cocoabuilder.com/archive/xcode/303307-why-does-xcode-create-nonsensical-destinations-in-every-scheme.html). Apparemment, Dave Duncan n'a pas rencontré de problème où Xcode ne fait pas quelque chose correctement (ou il n'utilise pas d'outils tels que les gardes malloc).
Cela pue le logiciel indésirable de Cupertino. +1 à Apple et son service d'assurance qualité merdique (s'il existe), ce qui a permis à un autre bug de voler librement.
Vous ne pouvez pas utiliser GuardMalloc sur l'appareil.
Comme d'autres l'ont répondu, vous ne pouvez pas utiliser Enable Guard Malloc
sur l'appareil, mais vous pouvez l'utiliser sur le simulateur.
Les 3 autres options de gestion de la mémoire, à partir de Xcode 7.3.1, peut être utilisées sur l'appareil: Enable Malloc Scribble
, Enable Malloc Guard Edges
et Enable Zombie Objects
.
Le périphérique de redémarrage l'a corrigé. iOS n'a pas été mis à jour. Vraiment mauvais !