Отслеживание переменной или изменение памяти в Xcode?
Есть ли способ отслеживать изменения переменных или изменения памяти в Xcode? Я ищу функции, такие как точка доступа данных Visual Studio.
Я хочу знать, где меняется рамка представления объекта. Я хочу установить точку останова в переменной-члене и запустить ее. Тогда я мог бы определить, где он изменился.
Ответы
Ответ 1
Xcode использует gdb
(или lldb
, но эту другую историю) для реализации его функций отладки. gdb
имеет возможность устанавливать аппаратные часы и, следовательно, Xcode.
Это - полезная страница для общей отладки ошибок памяти. Окно консоли Xcode для отладки - это просто оболочка gdb
, вы можете вводить команды, как вам угодно. Всегда полезный Куинн Тейлор объясняет, как это сделать в этом связанном сообщении.
Если вы предпочитаете напрямую не взаимодействовать с gdb
, вы можете щелкнуть правой кнопкой мыши переменную в окне отладки Xcode и выбрать "Watch Variable". Затем Xcode будет уведомлять вас о каждом изменении значения переменной.
Ответ 2
Вы можете использовать аппаратные точки наблюдения.
Вам нужно получить адрес переменной, которую вы хотите отслеживать (введите p &my_var
в подсказке gdb).
Он напечатает несколько строк, например 0x12345678
.
Предполагается, что ваша переменная равна int
. Он создаст сторожевую точку оборудования по этому адресу.
Надеюсь, что это поможет.
Ответ 3
Да.
В меню "Выполнить" есть "Отладчик", который предоставляет визуальный интерфейс для gdb.
Кроме того, рядом с кнопкой "Сборка и запуск" имеется кнопка точки останова. Вы можете щелкнуть это и управлять своими точками останова в разделе "Выполнить" > "Управление точками останова".
Ответ 4
Я знаю, что этот пост старый, но в случае, если вы все еще задаетесь вопросом, я опубликовал подробный ответ здесь: В XCode 6 как установить точку наблюдения без остановки выполнения?