私はthis approachに続いて、iOSアプリケーションでValgrindを実行しました。残念ながら、iOS SDKに関連する警告は、私のアプリに関連する警告を見つけることをほとんど不可能にしています。 ValgrindのiOS抑止リストがありますので、自分で生成する必要はありませんか?iOS SDKからValgrindの警告を抑制する
答えて
main()
のコードを修正してValgrindに適切なオプションを渡すことができるようです。 (これは、あなたがmemcheckを実行していることを前提としています。これはデフォルトのオプションで、あなたがペーストビンから実行しているように見えます)。
Valgrind/Memcheckは、Obj-C/iOS SDKを含む既存のライブラリでエラーを報告することが予想されます。エラーを報告からMemcheckを抑制するためには、これを使用する:
これは自動的に抑止を生成します。--gen-suppressions=yes
することもできます/深さにもう少し行くと、あなたがしたくない内容をカスタマイズしたい場合があります参照:
が抑制ファイルを追加を考慮すべき: --suppressions=/path/to/file.supp.
抑制型(第2)のラインの寿LDの形式は:
Value1, Value2, Value4, Value8, Value16
を、1、2、4、8または16バイトの値を使用する場合に初期化されていない値の誤差を意味する:以下のように
Memcheck:suppression_type
Memcheck抑制タイプがあります。
Cond (or its old name, Value0)
は、初期化されていないCPU条件コードの使用を意味します。
Addr1, Addr2, Addr4, Addr8, Addr16
(1,2,4,8または16バイトそれぞれのメモリアクセス中に無効なアドレスを意味します)。
Jump
です。これは、アドレスできない場所のエラーへのジャンプを意味します。
Param
(無効なシステムコールパラメータエラーを意味します)。
Free
、無効または不一致のフリーを意味します。
Overlap
は、memcpyまたは同様の機能でsrc/dstの重複を意味します。、つまりメモリリークを意味します。
詳細については、suppressing errors in the Valgrind docsもチェックしてください。 あなたは複数の抑制ファイルを持つことができますので、いつでも後で削除することができます。
ただし、これらのエラーが表示されている理由で見たいと思うかもしれません。 SDKの多くは無視したいかもしれませんが、可能であればトラックの原点をオンにして、ちょうどあなた自身のコードをチェックした後である可能性があります。
初期化されていない値エラーは、初期化されていない値(duh)について警告されているところです。ただし、初期化されていない値が他にもあるので、違いを出す初期化されていない値がある場合にのみこれを行います。
通常、これらは、使用しないで使用するまで伝播することができます。これらの値は、実際に使用しようとするたびに報告されます。
--track-origins=<yes|no>
(デフォルトは「いいえ」)をオンにすると、どこから来たのかを知ることができ、SDKのように見えます。知らない人にとっては、--track-origins
は本当に非常に役に立ちます。なぜなら、オフになっていると、初期化されていない値が「危険な」方法で使用されていることが分かりますが、初期化されていない値がどこから来たのか分かりません。
--undef-value-errors=no
も使用されている場合、Memcheckはこれをyesに設定することを拒否します。
- 1. 抑制の警告コマンドラインスウィフトコンパイラ
- 2. Microsoft Fakeの警告を抑制する
- 3. SASの警告文を抑制する
- 4. JInputの警告を抑制する
- 5. XMLのリント警告を抑制する
- 6. rsOverlappingReportItemsの警告を抑制する
- 7. Hachoirの警告を抑制する
- 8. 特定の行のOCamlからの警告を抑制する
- 9. ネイティブアンドロイドセッションタイムアウト警告を抑制する
- 10. LNK4204を抑制する警告
- 11. EclipseのサードパーティソースコードからのGCC警告を抑制する方法
- 12. キャスト()からの警告メッセージを抑制する方法
- 13. ライブラリヘッダーからのGCC警告を抑制する方法は?
- 14. iOS SDK NSXMLParserDelegate警告
- 15. gcc:抑制する[デフォルトで有効] C++コードからの警告
- 16. ASP.NET/VB.NETでのコンパイラ警告の抑制
- 17. ビジュアルスタジオでのtlbimp警告の抑制
- 18. 抑制を呼び出し、SQLCMD警告
- 19. 抑制活字体の警告
- 20. 抑制トワールテンプレート非推奨メソッドの警告
- 21. JDBC例外処理:警告の抑制
- 22. 抑制コンパイラの警告機能は
- 23. GTK +からのValgrindエラーを抑制する
- 24. Swift Package Managerによる依存関係からの警告を抑制する
- 25. DBIからの任意の警告/エラーメッセージを抑制する方法は?
- 26. manage.py dumpdataの警告出力を抑制しますか?
- 27. SuppressMessageAttribute;クラス内のすべての警告を抑制する
- 28. 可能性のある特別な警告を抑制する
- 29. ヘッダからインクルードされたファイルの警告を抑制する方法
- 30. PHPの警告を抑制します。使用するhtaccess
+1、今日新しいことを学びました – doNotCheckMyBlog
あなたは抑制したいmain.mの特別な警告はありますか? – CodaFi
@CodaFi「条件付きジャンプまたは移動は、初期化されていない値に依存しています」ということは、私が間違っていないとSDKからすべてのものが出てきたと思われる場合です。抽出物については、http://pastebin.com/fVHnhNh6を参照してください。 – marcog