Использование внешнего бинарного Xcode Clang Static Analyzer с дополнительными проверками - PullRequest
3 голосов
/ 21 июля 2010

Я использую Xcode 3.2.4 и настроил функцию Clang Static Analyzer для использования более новой сборки двоичного файла, как описано здесь: http://clang -analyzer.llvm.org / xcode.html

(в основном с помощью утилиты командной строки set-xcode-analyzer , чтобы изменить, какую копию статического анализатора Xcode использует для Build and Analyze .)

То, что я не могу понять, это как настроить этот двоичный файл для использования дополнительных проверок, таких как -analyzer-check-objc-missing-dealloc при использовании двоичного файла через XCode, как подробно описано здесь: http://loufranco.com/blog/files/scan-build-better-than-build-analyze.htmlи в scan-build --help.

    AVAILABLE ANALYSES (multiple analyses may be specified):

 (+) -analyzer-check-dead-stores
     -analyzer-check-llvm-conventions
 (+) -analyzer-check-objc-mem
 (+) -analyzer-check-objc-methodsigs
     -analyzer-check-objc-missing-dealloc
 (+) -analyzer-check-objc-unused-ivars
 (+) -analyzer-check-security-syntactic

 NOTE: "(+)" indicates that an analysis is enabled by default unless one
       or more analysis options are specified

Как передать дополнительные параметры в двоичный файл при использовании через Xcode?

Ответы [ 2 ]

7 голосов
/ 22 июля 2010

После дальнейшего изучения, кажется, что лучший способ сделать это - использовать пару записей в Target Build Info, а не инструмент командной строки set-xcode-analyzer .

Добавьте пользовательскую настройку CC , содержащую полный путь к новой сборке двоичного файла, следующим образом (обратите внимание, что / bin / clang в концепуть):

CC = /Path/To/Folder/With/Clang/checker-244/bin/clang

Затем в запись Другие предупреждающие флаги добавьте столько дополнительных проверок, сколько вы хотите, следующим образом:

WARNING_CFLAGS = -Xanalyzer -analyzer-check-llvm-conventions -Xanalyzer -analyzer-check-objc-missing-dealloc

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

Подробнее об этом можно узнать здесь: Страница руководства по инструментам разработчика Mac OS X .

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

1 голос
/ 12 апреля 2013

Принятый ответ больше не работает (Xcode 4)

Формат файла сборки Xcode означает, что вы должны сделать это так:

WARNING_CFLAGS = "-Xanalyzer -analyzer-check-llvm-conventions -analyzer-check-objc-missing-dealloc"

Примечание: кавычки, окружающие всю фразу XAnalyzer.

...