1

Xcode 4.3によって提供される静的アナライザーは、割り当て解除されていないivarをキャッチまたはフラグ付けする必要がありますか?

私はiOS開発に比較的慣れていないので、いくつかのエンゲージメントを探しています。私のチームは、XCodeでのデバッグビルドに対して静的分析を有効にしてプロジェクトをビルドします。AppCodeの検査機能を評価するために、プロジェクト全体に対して検査を実行しました。

AppCodeの検査は良好であると期待していましたが、Xcodeで静的分析がオンになっているため、正しく割り当て解除されていないivarの50以上のインスタンスが検出されるとは予想していませんでした。AppCodeが問題を正しく識別したことを確認しました。いくつかのケースでは、これにより既知のメモリリークが解決されました。

clang static Analyzerはこれらをキャッチする必要がありますか?

いくつかのプロジェクト設定が正しく設定されていないので、私はそれを望んでいます。私が期待しているように、clang static Analyzerは、少なくとも欠落している割り当て解除にフラグを立てます。

4

2 に答える 2

1

AppCodeがXcodeよりも優れた機能を備えていなければ、AppCodeの市場はそれほど多くないので、Xcodeが機能しない領域が少なくともいくつか見つかると思います。おそらくこれはそのようなケースの1つです。

一方、あなたが説明した種類のリークは、Instrumentsを使用して非常に簡単に見つけることができるはずです。したがって、そのような問題を見つけるのに役立つツールがXcodeに含まれていないわけではありません。

于 2012-04-23T15:35:51.770 に答える
1

clangメーリングリストから回答を得て、clangはこの問題をキャッチできます。問題は、XCodeに同梱されているバージョンのclangでこの機能が無効になっていることです。

こんにちは、シーマス。Clangはこのチェックをサポートしていますが、デフォルトでは無効になっています(おそらく http://llvm.org/bugs/show_bug.cgi?id=8838が原因です)。

私は、Instrumentsが1つまたは複数のリークを特定することに同意します。ただし、リークの原因、またはおそらくリークの原因を絞り込むプロセスは、私の経験ではめったに簡単ではありません。AppCodeがフラグを立てた問題は、チームが絞り込むことができなかった2つの既知のリークを解決することになりました。さらに、既知の問題の一部である他の多くの問題と未知の問題を明らかにしました。

clangが更新されると、これらの種類の問題も解決されるはずです。

于 2012-05-22T14:19:19.923 に答える