web-dev-qa-db-fra.com

Comment activer le débogueur visuel de la mémoire dans Xcode 8?

J'ai migré un projet de la version précédente de Xcode vers Xcode 8. Ce que je veux, c'est utiliser le nouveau débogueur de mémoire visuelle. Il est disponible dans les nouveaux projets, mais est totalement absent de mon importé. Pourquoi est-ce?

12
PopKernel

Il semble que Swift 3 soit requis pour que Visual Memory Debugger fonctionne.

Mon application ayant migré vers Swift 2.3 ne fonctionnait pas. Lorsque j'ai essayé de la migrer vers Swift 3.0, cela fonctionnait instantanément.

La case à cocher Désinfection à l'exécution n'est pas requise pour que le débogueur de mémoire visuelle fonctionne, mais la raison pour laquelle elle est désactivée est identique.

12
gabriellanata

Il semble que le projet nécessite Swift 3 pour activer Adress & Thread Sanitizer (qui est le débogueur de mémoire).

 address sanitizer  thread sanitizer

Pour moi, cela s'applique aux applications iOS et OS X/macOS. Les deux écrits en Swift 2.2 et convertis en 2.3.

Remarque: je n'ai testé cela qu'avec OS X El Capitan 10.11.5.

@gabriellanata confirme que cela fonctionne lorsque le code est converti en Swift 3.

7
mangerlahn

Si vous cliquez sur Mémoire, le volet de l'éditeur de source changera pour afficher certaines informations sur la mémoire, y compris les raisons pour lesquelles elle est désactivée. Dans mon cas, c'était parce que j'avais des objets Zombie activés dans le schéma. (Xcode 8.3.2)

0
Rick
Argument '-sanitize=address' is not supported on the Swift 2.3 toolchain. 
You will need to migrate your project to Swift 3 to use this feature.

Xcode 8 GM erreur de compilation

P.S. Objective-c pris en charge par le débogueur de la mémoire visuelle

0
Uladzimir

Je viens de lancer un projet Objective-C iOS 7 créé avec Xcode 7 dans Xcode 8 (sans migration) et l'icône du débogueur de mémoire visuelle apparaît au bas de Xcode dans la zone de débogage à côté du bouton Hiérarchie de la vue Débogage.

 Visual memory Debugger

C'est le bouton avec les trois cercles.

D'après les autres commentaires, il semblerait que Swift 3 pourrait être nécessaire pour utiliser cette fonctionnalité.

0
JAL