Как включить отладчик Visual Memory в Xcode 8?

Я перенес проект из предыдущей версии Xcode в Xcode 8. Я хочу использовать новый отладчик визуальной памяти. Он доступен в новых проектах, но полностью отсутствует в моем импортированном. Почему это?

Ответы

Ответ 1

Похоже, для работы Visual Debugger требуется Swift 3.

Мое приложение, перенесенное в Swift 2.3, не работало, когда я попытался перевести его в Swift 3.0, он работал мгновенно.

Флажок очистки среды выполнения не требуется для работы отладчика визуальной памяти, однако причина, по которой он отключен, одинаков.

Ответ 2

Кажется, что для проекта требуется, чтобы Swift 3 включил систему адресации и фильтрации нитей (которая является отладчиком памяти).

дезинфицирующее средство для адресов дезинфицирующее средство для нитей

Для меня это относится как к приложениям iOS, так и к OS X/macOS. Оба написаны в Swift 2.2 и преобразуются в 2.3.

Примечание. Я тестировал это только на OS X El Capitan 10.11.5.

@gabriellanata подтверждает, что он работает, когда код преобразуется в Swift 3.

Ответ 3

Я только что запустил проект Objective-C iOS 7, сделанный с Xcode 7 в Xcode 8 (без миграции), а значок Visual Debugger в нижней части Xcode появится в области отладки рядом с кнопкой "Инициализация отладки".

Отладчик Visual memory

Это кнопка с тремя кругами.

Из других комментариев, похоже, для использования этой функции может потребоваться Swift 3.

Ответ 4

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

P.S. Objective-c, поддерживаемый отладчиком Visual Memory

Ответ 5

Если вы нажмете на "Память", панель редактора источника изменится, чтобы отобразить некоторую информацию о памяти, в том числе о том, почему она отключена. В моем случае это было связано с тем, что в схеме были включены объекты зомби. (Xcode 8.3.2)