Есть ли способ просмотра переменных без использования точек останова в XCode 4? - PullRequest
4 голосов
/ 07 декабря 2011

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

Кто-нибудь знает способ наблюдения за переменными, когда они работают без точек останова / журналов?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 07 декабря 2011

Если вы хотите убедиться, что ваши переменные должны быть определенным образом в определенный момент, это то, что утверждения для (например, NSAssert()).

Если вы просто хотите узнать, когда изменяется переменная, используйте точку наблюдения, а не точку останова. (Нажмите на переменную в отладчике и выберите «Смотреть».)

Если вы хотите проверить переменную в определенной точке и выполнить разрыв только в том случае, если это «что-то конкретное», используйте условную точку останова. Щелкните правой кнопкой мыши точку останова в xcode и выберите «Изменить точку останова». Вы также можете использовать это, чтобы ломать только так часто (например, после 100 пожаров).

Если вы просто хотите узнать, когда достигнута строка кода, но не останавливаться на этом, используйте действие «Звук» в окне «Редактировать точку останова», а затем «Автоматически продолжить после оценки действий». Я использую это довольно много в работе производительности. Когда я слышу, как он начинает гудеть, я знаю, что нашел в коде горячую точку.

Вы имели в виду что-то еще?

4 голосов
/ 07 декабря 2011

Следуя замечательным советам Роба Нейпира, вы также можете отредактировать точку останова, чтобы записать значения, которые вас интересуют, а затем продолжить, например:

Image showing a logging breakpoint.

Как вы можетевидите, я установил эту точку останова, чтобы записать значение выражения [marker center].GDB часто нуждается в помощи, чтобы узнать, каков окончательный тип выражения, поэтому мне пришлось добавить приведение (CGPoint).Очевидно, что это немного больше, чем просто щелкнуть в левом столбце, чтобы установить обычную старую точку останова, но это, вероятно, меньше работы, чем вставка операторов NSLog() в ваш код, и вы можете сделать это в середине сеанса отладки -нет необходимости перекомпилировать или даже перезапускать приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...