2012-04-23 105 views
1

Xcode 4.3提供的靜態分析器是否應該捕獲或標記未分配的ivars?XCode靜態分析和AppCode項目檢測

我對iOS開發相對比較陌生,我正在尋找一些信息:我的團隊使用爲XCode中的調試版本啓用的靜態分析來構建我們的項目。爲了評估AppCode的檢測功能,我對整個項目進行了檢查。

雖然我預計AppCode的檢測很好,但我沒想到它會找到50個以上的ivars實例,因爲我們在Xcode中啓用了靜態分析,所以沒有正確地取消分配。我們驗證了AppCode已經正確識別了這個問題,在一些情況下,這解決了已知的內存泄漏問題。

鐺靜態分析儀是否應該抓住這些?

我希望它是因爲一些項目設置沒有被正確設置。正如我所期望的那樣,鐺靜態分析器至少會標記缺失解除分配。

回答

1

從clang郵件列表中得到答案,clang可以解決這個問題。問題在於XCode附帶的clang版本已禁用此功能!

你好,Seamus。 Clang確實支持此檢查,但默認情況下它禁用 (可能因爲 http://llvm.org/bugs/show_bug.cgi?id=8838)。

我同意儀器會識別泄漏或泄漏,事實上它已經。但是,根據我的經驗,縮小泄漏源或更可能泄漏的過程並非易事。標記爲AppCode的問題最終解決了團隊無法縮小的兩個已知泄漏。此外,它揭示了許多其他已知問題和其他未知問題的其他內容。

一旦叮噹更新,它也應該指出這些問題。

1

如果AppCode沒有做太多的市場,比Xcode更好,所以我相信你會發現至少有幾個地方可以爲你做些事情,噸。也許這是其中的一種情況。另一方面,您所描述的泄漏類型應該很容易使用儀器來發現,所以它不像Xcode中包含的任何工具可以幫助您找到這樣的問題。

+1

哈哈哈......我來自列表中的時間太長,無法在評論中列舉:)。我想說的是,AppCode的顯着特點是:1.它的工作原理(即它的bug較少,較少懲罰,並且可以報告它們並跟蹤進度)2.重構岩石。 – YvesLeBorg 2012-06-17 13:59:14