問題タブ [libobjc]
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.
objective-c - libobjc でリークしたメモリを示す Valgrind
ここで欠けているものを追跡しようとしています。
CentOs5 で動作しています。
これを単純な単純なプログラムに煮詰めましたが、それでもメモリリークが発生します。これが Valgrind のバグなのか、libobjc のバグなのかはわかりません。
main.m
そして、それをコンパイルしてgccでリンクします
実行するvalgrind main
とメモリリークが発生します
libobjc をリンクしない (-lobjc を除外する) と、メモリ リークは発生しません。
アイデア?
objective-c - このインライン アセンブリが libobjc で release、retain、および autorelease を呼び出しているのはなぜですか?
以下のスニペットは、Apple の ObjC ランタイム (libobjc) ソース コードから取得したものです。これは正確には何を意味するのだろうか。(あまりGoogle対応ではありません、申し訳ありません)
アップデート:
bypass_msgSend_release() の呼び出しが生成するものは次のとおりです。
ios - iOS クラッシュ libobjc.A.dylib objc_msgSend
Crashlytics で以下に示すクラッシュが発生しています。
これがアプリ内のどこから来るのか理解できません。残念ながら、私はこのクラッシュを自分で生成することはできませんでしたが、実際に発生しています。
アプリ名への参照は 1 つだけであり、これがアプリのどこから来ているかを示すものは何もありません。
アプリのどこでこれが発生したかに関するデータがないという事実は、didFinishLaunchingWithOptions 中に問題が発生したことを示しているため、実際には詳細を表示するのに十分な距離に達していませんか? または、問題の場所を示すデータがログに不足している他の理由がありますか?
これを追跡する方法を誰か教えてもらえますか?
このスレッドに寄せられたコメントに関連して、以下を追加します。このコードは、通常のラベル設定など以外の主な UI 関連の変更であり、問題は見られません。
以下のコードは、AppDelegate.m、DidFinishLaunchingWithOptions に追加されました。
クラッシュは私が再現できたものではなく、毎日発生するのはほんの一握りのケースですが、タイミングの問題である可能性があり、UI がメッセージを受信できないのではないかと思っています。
ご意見を歓迎します。同意する場合は、代わりにコードを ViewController の ViewDidLoad に移動する必要があります。