Должен ли я стремиться к отсутствию результатов анализатора при запуске Build and Analyze - PullRequest
0 голосов
/ 25 марта 2010

Я много раз читал, что построение и анализ не идеальны. Когда я запускаю его, получается полезная информация, которая определенно улучшила мой код, но также дает результаты, которые не являются необходимыми проблемами. В тот момент, когда я изменяю свой код, чтобы попытаться избавиться от всех результатов Analyzer, являются ли они проблемой или нет. Является ли это наилучшей практикой, потому что, как и предупреждения, тогда легко проверить, что у вас есть проблема, или я должен признать, что анализатор не совершенен, и не изменить код, если не обнаружил подлинную проблему?

Ответы [ 3 ]

6 голосов
/ 25 марта 2010

Прежде всего, все предупреждения компилятора - это просто ошибки, которые будут отображаться только во время выполнения. Они не мешают компиляции, но в конечном итоге они вызовут серьезную проблему где-нибудь в будущем. Вы должны зайти в настройки сборки и установить флажок «Рассматривать предупреждения как ошибки» и по мере исправления исправлять возникающие ошибки. В противном случае, вы в конечном итоге сильно пострадаете для устранения проблем в будущем.

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

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

3 голосов
/ 25 марта 2010

Да - в идеале вы хотите исправить все проблемы, возникшие в процессе анализа.

Однако, в то время как clang - это здорово, оно не идеально. Иногда это может вызвать ложное срабатывание. Если вы уверены, что это так, и диагностика содержит ошибку, вам следует попытаться воссоздать наименьший возможный тестовый случай, в котором обнаружена ошибка, и отправить его в http://clang -analyzer.llvm.org / filing_bugs .html , чтобы они могли улучшить механизм анализа.

0 голосов
/ 26 марта 2010

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

...