問題タブ [clang-static-analyzer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - スキャンビルド静的アナライザーにiOSARCのコードを理解させる方法
こんにちは私はhttp://clang-analyzer.llvm.org/scan-build.htmlからコマンドラインユーティリティscan-buildをインストールしました。
ARCを使用するXcode4.2プロジェクトでこれを実行すると、アナライザーが手動でメモリを解放するのを忘れたと誤って考えているため、メモリリークの警告が大量に発生する可能性があります。
最新バージョン(checker-258)はARCを適切にサポートしていますか?リリースノートにはそうすべきだと書かれていますが(http://clang-analyzer.llvm.org/release_notes.html)、これは私が見ている証拠ではありません。
助けてくれてありがとう。
objective-c - 変数を nil に初期化するのは良い習慣ですか?
変数を に初期化することをお勧めしますnil
か?
プロジェクトでアナライザーを実行すると警告が表示されるため、私はそれを求めています。
コードを変更すると、警告はなくなりました。
clang - Clang の「スキャンビルド」を SCons で動作させるにはどうすればよいですか?
SConsでビルドされたプロジェクトがあり、 Clang Static Analyzerを使用してコードを分析しようとしています。ただし、実行時は
SCons は によって導入された設定を無視するようscan-build
です。どうすればこれを機能させることができますか?
ios - CFReleaseのヌルポインター(静的アニライザーによって通知されます)
私はこのコードを手に入れました:
しかし、静的アナライザーを実行すると、次のように表示されます。
CFReleaseの呼び出しでのヌルポインター引数
しかし、私のロジックによれば、CGImageDestinationCreateWithDataによって作成されたCGImageSourceRefをリリースする必要があります。
また、ブリッジしているだけなので、リリースするのは間違いかもしれないと思っています。つまり、元々はNSMutableDataオブジェクトであったため、arcはそのオブジェクトを引き続き制御します。
さらに悪いことに、CFRelease(Null)は良くないことを読みました。
私は非常に混乱しています、どんな助けもいただければ幸いです。
編集:
ポインタをCFReleaseに送信する前に、ポインタを記録しました。ポインタはそこにあります。
では、元の質問に戻ると、静的アナライザーがnullポインター引数を送信していることをどのように通知するのでしょうか。これを修正/ミュートするにはどうすればよいですか?
ありがとう
PD:nullポインターではなく、nullへのポインターを送信している可能性はありますか?
ios - iOSアプリのメモリ警告
静的アナライザーを実行した後、約500以上のメモリ警告があります。これは私が心配して修正に時間を費やす必要があるものですか、それともアプリのクラッシュを改善するのに本当に役立ちませんか?
ありがとう!
objective-c - CGMutablePathRefオブジェクトの解放に関するコンパイラ警告を無音にします
静的アナライザーを有効にしましたが、その実行パスの最後でそのオブジェクトが解放されなかったため、メモリリークが発生した可能性があります。ただし、作成されたオブジェクトへの参照を、それを解放する別のクラスに渡します。後でこのオブジェクトをリリースすることをコンパイル済みに伝えるメソッドまたはキーワードがあるかどうか疑問に思いました。
自動リリースのようなものを探しています。
ちなみに、私はARCを使用しています。
次のようなオブジェクトを作成します。
そして、次のように渡します。
私のflowViewクラスには、それを解放するこのメソッドがあります。
私はすでにGCPathのドキュメントを見てみましたが、運がありませんでした。
ありがとう
objective-c - init メソッドと「+1 (所有) 保持カウントが期待される呼び出し元に返される +0 保持カウントを持つオブジェクト」 - 誤検知?
まず第一に、なぜこの警告が存在するのか、理解できません。なぜこのような状況で警告が発せられるのか、説明できません。公式の Cocoa メモリ管理ポリシーは次のとおりです。 newObject、または mutableCopy)。
保持を使用してオブジェクトの所有権を取得できます」
私は次のようなコードがあることを知っています:
私の知る限り、これはclangによる誤検知ですよね? つまり、retain-count を増やす唯一のメソッドは「retain」と、名前が「alloc」、「new」、「copy」、または「mutableCopy」で始まるすべてのメソッドであるため、「init」は増加していません。保持カウントですが、クラスの「alloc」メソッドの戻り値を渡すために呼び出し元に中継されるため、実際には「init」は +1 ではなく +0 保持カウントを返すことが期待されます。そうじゃない?渡されたのと同じ保持カウントを持つオブジェクトを返すだけです。そのオブジェクトで「foo」を呼び出しても、保持カウントは変更されないため、このコードは完全に合法であり、実際には問題なく動作し、保持カウントは、プログラムの存続期間全体にわたって正確です。
iphone - 静的アナライザーがリークを示さないのはなぜですか?
これが私のソースファイルにあるコードです。プロパティに保持がある場合、メモリ管理は release と nil を追加するように指示します。私はそれをしていませんし、静的アナライザーも実行すると、彼女はなぜ不平を言いませんか? これをエラーまたはリークとして表示するには、特別な設定を有効にする必要がありますか?
何が間違っている可能性がありますか? それは開発者の責任ですか、それともコンパイラやアナライザによって強制されない単なるベストプラクティスですか?
objective-c - メモリ リークの誤検知
モデルには、そのプロパティを含む NSDictionary オブジェクトを作成する簡単なメソッドがあります。残念ながら、このメソッドは「分析」によってメモリリークが発生していると見なされます。
76 行目 (ここではドットでマークされています) に割り当てられ、「dic」に格納されているオブジェクトのメモリ リークの可能性があります。
私はARCを使用していません。
PS : 入ってきた人たちへ、私が投稿した元のコードは正しいものでした — 自動リリースがありました。後で編集したので、メモリリークが再発し、正確な理由を尋ねました。