2010-07-21 14 views
2

我使用的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使用額外的選項到二進制文件?

回答

6

經過進一步調查,似乎最好的方法是使用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時,您應該使用運行額外檢查的外部較新的二進制文件。

+0

我做了同樣的事情。我的分析儀正在工作。但事情是我得到一個錯誤-lgcc沒有找到....這是什麼? – 2010-08-21 05:23:30

+0

不知道是什麼原因導致它,但經過大量的繞過以下額外的配置設置似乎爲我工作,停止出現錯誤: – creednmd 2010-09-09 23:41:59

+0

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

0

接受的答案不再有效(的Xcode 4)

Xcode的構建文件的格式意味着你必須做這樣的:

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

NB:圍繞整個XAnalyzer短語的報價。