cre*_*nmd 3 xcode clang-static-analyzer
我正在使用Xcode 3.2.4并设置了Clang Static Analyzer功能以使用更新的二进制版本,详见此处:http://clang-analyzer.llvm.org/xcode.html
(基本上使用set-xcode-analyzer命令行实用程序来更改Xcode用于构建和分析的静态分析器的哪个副本.)
我无法想象的是如何设置该二进制文件以使用额外的检查,例如-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
Run Code Online (Sandbox Code Playgroud)
当通过Xcode使用时,如何将额外的选项传递给二进制文件?
经过进一步研究,似乎最好的方法是在Target Build Info中使用几个条目,而不是set-xcode-analyzer命令行工具.
添加用户定义的设置CC,其中包含二进制文件较新版本的完整路径,如下所示(请注意路径末尾的/ bin/clang):
CC = /Path/To/Folder/With/Clang/checker-244/bin/clang
Run Code Online (Sandbox Code Playgroud)
然后在Other Warning Flags条目中添加任意数量的附加检查,如下所示:
WARNING_CFLAGS = -Xanalyzer -analyzer-check-llvm-conventions -Xanalyzer -analyzer-check-objc-missing-dealloc
Run Code Online (Sandbox Code Playgroud)
每个前面都有参数-Xanalyzer,它表示下一个参数应传递给分析器.
有关详细信息,请参阅此处:Mac OS X开发人员工具手册页.
然后,当您在Xcode中进行构建和分析时,您应该使用运行其他检查的外部更新的二进制文件.