2015-07-16 3 views
3

Я пишу приложение iOS в Objective-C для iOS 8.4 с Xcode 6.4. У меня есть переменная (фактически элемент в массиве), изменяющаяся неожиданными способами.Ошибка отладки Xcode (точка останова)

Чтобы узнать, что происходит, я хотел бы иметь возможность сделать паузу программы, когда произойдет изменение (или только что произошло) изменения в переменной, используя какой-то “special break point”.

Возможно ли, если ДА как?

ответ

3

Что вы хотите - это точка наблюдения (см. «Настройка точек наблюдения» here).

В основном они контролируют память для пишет и прерывает программу, когда это произойдет.

Я думаю, что вы можете установить только их отладки консоли, а не Xcode UI, с:

(lldb) watchpoint set variable myinstancevar 

или

(lldb) w s v myinstancevar 
+0

Проблема здесь состоит в том, что он хочет сделать отладчик стоп на любой изменение в массиве. Массив всегда будет иметь тот же указатель в памяти, даже если вы добавляете или удаляете obejcts. Контрольные точки отслеживают изменения в памяти. Поэтому, если вы измените массив от нуля до чего-то, он остановится. Но изменений в массиве не будет. – Pauls

+0

@Pauls, thats wrong, любое изменение на переменной само по себе остановится. Например, добавьте простое целое внутри некоторого класса и добавьте приращение в нескольких разных местах. установите точку наблюдения, и вы увидите, что каждый раз, когда вы вызываете программу инкремента, останавливается (со старым и новым значением) – Miknash

+0

Я просто тестировал и не работал. Я создал mutablearray в классе. Я добавил точку наблюдения в эту переменную. Затем, когда я прокручивал, я добавлял объекты в этот массив, чтобы проверить, не остановится ли он. Это не так. Можете ли вы предоставить образец? – Pauls

Смежные вопросы