Отслеживание переменной или изменение памяти в Xcode?

Есть ли способ отслеживать изменения переменных или изменения памяти в Xcode? Я ищу функции, такие как точка доступа данных Visual Studio.

Я хочу знать, где меняется рамка представления объекта. Я хочу установить точку останова в переменной-члене и запустить ее. Тогда я мог бы определить, где он изменился.

Ответы

Ответ 1

Xcode использует gdb (или lldb, но эту другую историю) для реализации его функций отладки. gdb имеет возможность устанавливать аппаратные часы и, следовательно, Xcode.

Это - полезная страница для общей отладки ошибок памяти. Окно консоли Xcode для отладки - это просто оболочка gdb, вы можете вводить команды, как вам угодно. Всегда полезный Куинн Тейлор объясняет, как это сделать в этом связанном сообщении.

Если вы предпочитаете напрямую не взаимодействовать с gdb, вы можете щелкнуть правой кнопкой мыши переменную в окне отладки Xcode и выбрать "Watch Variable". Затем Xcode будет уведомлять вас о каждом изменении значения переменной.

Ответ 2

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


Вам нужно получить адрес переменной, которую вы хотите отслеживать (введите p &my_var в подсказке gdb).

Он напечатает несколько строк, например 0x12345678.

  • С gdb: type watch *(int *)0x12345678.

  • С lldb: watch set expression (int *)0x12345678 (или w s e (int *)0x12345678)

Предполагается, что ваша переменная равна int. Он создаст сторожевую точку оборудования по этому адресу.


Надеюсь, что это поможет.

Ответ 3

Да.

В меню "Выполнить" есть "Отладчик", который предоставляет визуальный интерфейс для gdb.

Кроме того, рядом с кнопкой "Сборка и запуск" имеется кнопка точки останова. Вы можете щелкнуть это и управлять своими точками останова в разделе "Выполнить" > "Управление точками останова".