Pull to refresh

Comments 8

А через DYLD_INSERT_LIBRARIES не проще было бы?
Проще наверно, как-то в поисках решения на этот вариант не наткнулся. Цель была запустить valgrind, закопался в его исходниках, случайно такое решение пришло, попробовал, заработало. Потому получился такой низкоуровневый велосипед, может кому-то будет полезен для подобных задач.
Хм… За все мои 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.
Ваш пример наталкивает на мысли о лопате. И о том, что идеальных инструментов, хорошо подходящих для конкретной цели, не существует. В принципе, так оно и есть. Цели, для которых та или иная утилита была написана, могут сильно, а могут и совсем едва отличаться от целей человека, её использующего. Но идеально она будет подходить лишь тому, кто её написал (если он её написал хорошо, разумеется).
Руки лучший инструмент.
Sign up to leave a comment.

Articles