使用外部的Xcode锵静态分析器二进制,额外的检查
我使用的Xcode 3.2.4,并已经设置了锵静态分析器功能使用的二进制文件的更新版本,因为这里详细:http://clang-analyzer.llvm.org/xcode.html使用外部的Xcode锵静态分析器二进制,额外的检查
(基本上使用设置的Xcode分析仪命令行实用程序更改静态分析仪,其复制的Xcode用来建立与分析)
我想不通的是如何设置的二进制使用额外的检查,例如通过Xcode使用二进制文件时的-analyzer-check-objc-missing-dealloc,详情如下: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使用额外的选项到二进制文件?
经过进一步调查,似乎最好的方法是使用Target Build Info中的几个条目,而不是使用命令行工具set-xcode-analyzer。
添加用户定义的设置,CC,包含全路径二进制的较新版本,如下(请注意,在路径的末端的/bin中/铛):
CC = /Path/To/Folder/With/Clang/checker-244/bin/clang
然后在等警示标志,只要你想条目添加尽可能多的额外的检查,具体如下:
WARNING_CFLAGS = -Xanalyzer -analyzer-check-llvm-conventions -Xanalyzer -analyzer-check-objc-missing-dealloc
每个是PREC由参数-Xanalyzer决定,它指示应将下一个参数传递给分析器。
关于这方面的更多信息可以在这里找到:Mac OS X Developer Tools Manual Page。
然后,当您在Xcode中执行Build和Analyze时,您应该使用运行额外检查的外部较新的二进制文件。
接受的答案不再有效(的Xcode 4)
Xcode的构建文件的格式意味着你必须做这样的:
WARNING_CFLAGS = "-Xanalyzer -analyzer-check-llvm-conventions -analyzer-check-objc-missing-dealloc"
NB:围绕整个XAnalyzer短语的报价。
我做了同样的事情。我的分析仪正在工作。但事情是我得到一个错误-lgcc没有找到....这是什么? – 2010-08-21 05:23:30
不知道是什么原因导致它,但经过大量的绕过以下额外的配置设置似乎为我工作,停止出现错误: – creednmd 2010-09-09 23:41:59
RUN_CLANG_STATIC_ANALYZER = NO GCC_VERSION = com.apple.compilers.llvm.clang.1_0.analyzer SDKROOT = iphonesimulator4.1 OTHER_CFLAGS = -D__IPHONE_OS_VERSION_MIN_REQUIRED = 040100 – creednmd 2010-09-09 23:43:14