В XCode 6 как вы можете установить точку наблюдения, не останавливая выполнение?

Вы можете легко установить точку наблюдения в XCode, выполнив следующие действия (кстати, если есть более простой способ, я хотел бы узнать это...):
- Запустите вашу программу
- Установите точку останова в коде, где используется ваша переменная
- при достижении точки останова используйте правую кнопку мыши на переменной и выберите "Watch "nameOfTheVariable"".
- продолжить исполнение.

Единственная проблема заключается в том, что выполнение останавливается каждый раз, когда изменяется значение переменной. Я бы хотел, чтобы XCode продолжал выполнение без остановки, т.е. просто отображал изменения значений в выводе консоли.
Эта функция кажется доступной в режиме командной строки, и хотя я изначально хотел ее избежать, я опубликовал решение с использованием этого режима (см. Ниже), так как это единственный способ сделать то, что я хочу, т.е. продолжить выполнение при отображении переменной изменения.

3 ответа

Решение

Похоже, что единственный способ добиться этого - использовать командную строку LLDB. Так что для тех из вас, кто, как и я, никогда не использовал его здесь, это пошаговый (на самом деле довольно простой) способ его использования и просмотра переменных без остановки выполнения:

  1. Установите точку останова в Xcode (щелкните слева от исходной строки), где используется переменная, которую вы хотите наблюдать (в области видимости), и выполняйте свой код, пока он не достигнет точки останова.
  2. В представлении консоли (маленькое окно внизу справа, где вы можете отображать консольные объекты) вы должны увидеть приглашение (lldb). Здесь вы вводите следующие команды:
    w s v stuff (или же watchpoint set variable stuff) где вещи это имя переменной, которую вы хотите посмотреть
    w c a (или же watchpoint command add), чтобы войти в режим сценария, где вы вводите одну команду в строке, как показано после '>'
    p stuff (или же print stuff) отобразить новое значение переменной вещи
    c (или же continue) продолжить исполнение
    DONE чтобы закончить этот маленький сценарий (обратите внимание на символы верхнего регистра!)

ВОТ И ВСЕ! Вы можете удалить свою точку останова и продолжить выполнение. С этого момента сообщения будут отображаться в консоли каждый раз, когда переменная "stuff" обновляется, не останавливая выполнение вашего кода (это, конечно, может немного замедлить его, но обычно это не важно).

Легко, установите точку останова правой кнопкой мыши и измените ее. Существует множество опций с именем "автоматически продолжить после оценки действий".

Точка наблюдения похожа на точку останова, которая срабатывает при обновлении значения переменной, за которой следят. Чтобы установить его, выполните следующие действия:

1. Установите точку останова так, чтобы представление переменных в отладчике показывало переменную, которую вы хотите наблюдать. 2. Нажмите правой кнопкой мыши на переменную и выберите Watch "имя переменной". 3.Это остановит выполнение при каждом изменении значения переменной.

Теперь точка наблюдения начнет отображаться в отладочном навигаторе. Для того, чтобы удалить его, просто перетащите его в сторону редактора, и все готово.

PS: это всего лишь более разумная версия didset реализации для переменной и установки и точки останова внутри нее.

Другие вопросы по тегам