Какие ключевые инструменты отладки в Xcode?

«Какие ключевые инструменты отладки в Xcode?» — вопрос из категории Тестирование, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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]) без модификации кода.