2016-05-18 1 views
0

私のアプリが情報なしでクラッシュすると、ゾンビオブジェクトmallocのくすぐりがオンになり、エラーポイントをキャッチしようとします。 ゾンビオブジェクトでもうクラッシュしません。 ゾンビオブジェクトmallocのくりじりをオフにすると、クラッシュが再び発生します。 どのようにして障害ポイントを捕まえることができますか?何か案は?「ゾンビオブジェクト」でクラッシュが消えてしまうのはなぜですか?

+1

クラッシュについて何かを説明するのが役立つと確信しています。繰り返し可能か、ユーザーの入力に反応するかなどです。 – Noumenon

+0

ヒント:私は自分のアプリでフォンコールを受け取ったときに何が起こるかをテストしています。 – Kira

+0

ゾンビをオンにすると、ダングリングポインタの使用を示す素敵なデバッガメッセージに置き換えられているダングリングの結果、アプリがクラッシュします。ゾンビオブジェクトへのアクセスについてデバッグコンソールにエラーが表示されていないと言っていますか?それは、問題がぶら下がったポインタから来たものではなく、むしろ何か他のものである可能性があるという仮説をいくらか悪化させる。だから、(a)本当にあなたがゾンビにメッセージを見ていないことを確認してください。 (b)なぜあなたがポインタを持っていると思うか教えてください。スタックトレースとクラッシュに関するより多くの技術情報が役立ちます。 – Rob

答えて

1

クラッシュは「ダングリングポインタ」(リリースされた後にメッセージを送信するオブジェクト)によって引き起こされます。

ゾンビがオンになっていると、は公開されていませんそれがゾンビと呼ばれる理由です!したがって、ぶら下がっているポインタはありません。代わりに、すべてのオブジェクトがリークします。漏れがクラッシュを引き起こすことはなく、ぶら下がったポインタがないので、クラッシュはなくなる。

ゾンビを使用していない場合、オブジェクトにリリースされたときに、メッセージを送信しているオブジェクトを理解する機会を与えることがポイントです。

関連する問題