詳細ビューで EXC_BAD_ACCESS?
-
21-09-2019 - |
質問
アドホック テストを実行中にテスターがクラッシュ レポートを受け取りました。
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_PROTECTION_FAILURE at 0x2ff00ff4
アプリケーションはシミュレータでは決してクラッシュしませんが、デバイスでは確実にクラッシュします。
Object alloc でテストすると、図のような奇妙な割り当てが得られました (図の最後の行を参照)。代替テキスト http://img705.imageshack.us/img705/9977/picture2wx.png
このベッドへのアクセスを解決する方法を誰か教えてください。
解決
機器は目に見えるものだけを記録することに注意してください。何かが開始前にメモリをmallocし、実行中にメモリを解放した場合、負のカウントが得られます。これは必ずしもあなたの問題に関係があるわけではありません。EXC_BAD_ACCESS は、割り当てが解除された (または初期化されていない) オブジェクトにアクセスしようとした結果として発生することがよくあります。NSZombies をオンにして実行してみてください。
他のヒント
GeneralBlock-X は、次のように割り当てられたメモリのブロックを参照していると思います。 malloc()
;言い換えれば、既知のクラスのインスタンスとは対照的に、型のない生データです。
品目 GeneralBlock--32
誰かが -32 バイトのメモリを割り当てようとしたことを意味します。それが『Instruments』に登場するまでにはならないとは思いますが、実際にはあります。カウントも負であるという事実は、実際に MAXINT+33 を割り当てようとしていて数値が回り込んでいるなど、何か奇妙なことが起こっていることを示す手がかりである可能性があります。推測です。
いずれにせよ、Instruments はメモリのブロックがどこに割り当てられているかのスタック トレースを提供できるはずです。その情報は、何が問題なのかを知るための貴重な手がかりとなるでしょう。