Ответ
1. Отладчик LLDB (консоль в нижней панели Xcode):
po(print object) — выводит описание объекта (вызываетdescription/debugDescription).p(print) — выводит значение с информацией о типе.expr— позволяет выполнить выражение во время выполнения.fr v(frame variable) — показывает локальные переменные в текущем кадре стека.(lldb) po myArray.count (lldb) expr myArray.append("newItem")
2. Визуальные инструменты:
- View Debugger (кнопка с иерархией кубов): показывает 3D-развертку UI, проверку констрейнтов и свойства каждого
UIView. - Memory Graph Debugger (кнопка с графом): визуализирует объекты в памяти, помогает находить циклы сильных ссылок (retain cycles).
3. Инструменты производительности (Instruments): Запуск: Product -> Profile (Cmd+I).
- Time Profiler — анализ загрузки CPU, поиск "узких" мест.
- Allocations — отслеживание выделения и освобождения памяти.
- Leaks — автоматический поиск утечек памяти.
- Network — анализ сетевых запросов (длительность, объем данных).
4. Специализированные утилиты:
- Network Link Conditioner (дополнительная загрузка в Xcode) — симуляция различных условий сети (3G, потерянные пакеты, высокая задержка).
- Консоль macOS (Console.app) — просмотр системных логов и логов устройства, включая
os_logсообщения.
5. Практический совет: Используйте символьные точки останова (Symbolic Breakpoint) для остановки на конкретных системных событиях (например, -[UIViewController viewDidLoad]) без модификации кода.