Можно ли использовать инструменты XCode с включенными точками останова?

#ios #xcode #instruments #breakpoints

#iOS #xcode #инструменты #точки останова

Вопрос:

Я пытаюсь оптимизировать использование памяти приложения iOS, и я хотел бы посмотреть, каково общее использование памяти приложения в определенных точках кода. Я думал, что смогу устанавливать точки останова, профилировать приложение с помощью Activity Monitor и просто смотреть на использование памяти при обнаружении каждой точки останова. Но когда я запускаю инструменты, кажется, что точки останова больше не останавливают выполнение, поэтому трудно точно определить, когда меняется использование памяти.

Можно ли использовать точки останова и инструменты одновременно? Если нет, есть ли умный способ написать какой-нибудь код, чтобы вставить маркер на временную шкалу инструментов при возникновении определенных событий?

Ответ №1:

Я также столкнулся с этой проблемой сегодня, и после небольшого поиска я нашел это решение. Текст ниже — цитата из сообщения:

Точки останова не прерываются.Инструменты используют отладочную информацию из вашей отладочной сборки, однако она не останавливается на заданных вами точках останова. Это потому, что, когда вы загружаете свое приложение в инструменты из меню в XCode, Instruments просто использует путь к текущему исполняемому файлу в качестве начального пути и загружает его извне из XCode. Меню в XCode действительно существует как механизм удобства. Это не имеет большого значения, так как вы всегда можете снова запустить в режиме отладки после сеанса работы с инструментами, если хотите, чтобы ваше приложение сломалось. Это просто то, что нужно отметить.

Инструкции NSLog не отображаются в консоли отладчика.Если вы хотите просмотреть свои инструкции NSLog, вам нужно будет загрузить приложение system Console (/ Applications/ Utilities/ Console ).

Ссылка: http://www.cimgf.com/2008/04/02/cocoa-tutorial-fixing-memory-leaks-with-instruments /

Ответ №2:

Ну, вы не работаете под управлением отладчика.

Одним из подходов может быть добавление оповещений в ключевые точки, а затем сделать снимок кучи (вручную).

Или может быть какое-то волшебство dtrace.