Комментарии 8
А через DYLD_INSERT_LIBRARIES не проще было бы?
Хм… За все мои 6 лет программирования на Objective-C мне ни разу не приходилось переопределять метод retain (создание синглотна исключение). Всегда дебажил при помощи Allocations ну и Instruments в новой версии.
Мне приходилось сталкиваться с вылетом Instruments/Allocations из-за низкоуровневых багов в запускаемой им программе, даже gdb вылетал на комплексных многотредовых real-time проектах, потому пришлось использовать valgrind. он сократил время отладки в разы и дал гарантию стабильности, в общем-то когда gcc и valgrind выдает 0 errors 0 warnings, то это хорошо и никакой Instruments/Allocations уже не нужен. Недостаток valgrind в его тормозах, часто не позапускаешь, FPS в симуляторе падает до 1-5, зато в конце есть полный лог с которым можно работать в оффлайне, например. Instruments/Allocations не тормозит выполнение программы, но тяжелый, из-за чего глючной, он тоже успешно решает свою нишу задач. 2 разных инструмента. Отверткой и топопром можно вырыть яму, но для большой ямы лучше топор, а для малой отвертка. когда существует множество ям разной конфигурации, то хороши оба инструмента.
Может Вы просто неправильно используете существующие инструменты? Уверен, что правильный подход с Instruments тоже бы сработал.
Ваш вариант верный, если можно обходиться только одним инструментом, значит это хорошо. Касаемо retain все верно, его должно хватать. В моем случае retain был часным случаем среди зоопарка багов, он падал. А с valgrind успешно выловил все баги включая retain. Согласен, несколькое отклонился от темы именно retain.
Ваш пример наталкивает на мысли о лопате. И о том, что идеальных инструментов, хорошо подходящих для конкретной цели, не существует. В принципе, так оно и есть. Цели, для которых та или иная утилита была написана, могут сильно, а могут и совсем едва отличаться от целей человека, её использующего. Но идеально она будет подходить лишь тому, кто её написал (если он её написал хорошо, разумеется).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Отладка Objective-C ARC retain