Достаточно ли Clang Static Analyzer? - PullRequest
4 голосов
/ 30 июля 2010

Я новичок в разработке для iphone и target-c и хочу спросить, достаточно ли Clang Static Analyzer для устранения утечек памяти? Лично я нашел инструмент xcode «Leaks» довольно сложным в использовании, кроме того, я видел несколько статей, в которых говорится, что он всегда показывает утечки памяти, даже если нет никаких реальных утечек.

Если у меня нет предупреждений от анализатора clang, значит ли это, что у меня нет утечек памяти? Или мне нужно как-то проверить это?

Что ты думаешь? Большое спасибо.

Ответы [ 3 ]

3 голосов
/ 30 июля 2010

Нет, это не так.CSA - это инструмент статического анализа, то есть он может отлавливать только то, о чем можно рассуждать во время компиляции.С этой целью это также не идеально, далеко не так.Это определенно не заменит инструменты.Однако CSA может помочь напомнить вам о вещах в правилах и других потенциальных проблемах.

2 голосов
/ 30 июля 2010

Если вы используете встроенную функцию Build and Analyze, вы можете получить лучшие результаты, загрузив реальный скан-билд и включив все проверки

http://www.loufranco.com/blog/files/scan-build-better-than-build-analyze.html

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

1 голос
/ 30 июля 2010

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

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

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