Ответ 1
При условном нарушении:
- Параметр Cmd + щелкните точку останова
- Добавьте условие break, например:
Для разрыва в каждом случае значение изменилось:
- Реализовать тривиальный сеттер (и getter для чистого кода).
- Добавить точку останова для сеттера.
Если вы хотите узнать, кто вызвал установщик, просто посмотрите на следующую строку в трассировке стека (viewDidLoad в моем примере):
Update:
Добавление точки наблюдения
- Перерыв в любом месте, чтобы в консоли появилось приглашение
(lldb)
- Введите
watchpoint set variable _position
(замените _position на iVar, который вы хотите посмотреть) - Обратите внимание на назначенный номер точки наблюдения на вновь созданную точку наблюдения.
- Измените точку наблюдения для условного взлома:
watchpoint modify -c "_position < 0.5" 1
, где выражение в кавычках - это условие, а число в конце - номер точки наблюдения, который вы отметили в # 3. - Продолжить работу. Вы будете ломаться всякий раз, когда значение соответствует условию, и вы сможете проверить фрейм стека, чтобы понять, откуда пришел вызов.