2012-12-22 17 views
9

メモリやメモリの破損状態のように見えるため、私たちのアプリがBugSenseで発見されたときに時々クラッシュする問題が発生しましたので、追跡しやすくしています。GuardMallocが仮想メモリを使い果たしました

  • mallocの落書き
  • mallocのガードは、
  • mallocのスタックは
  • ロギングオブジェクト
  • Objective-Cのゾンビ
  • ガードのmalloc縁
  • ログ例外。シミュレータでのビットのためのアプリ(30秒未満)と対話した後、次のメッセージが表示され

GuardMalloc[TrafficDemoEmp-2430]: allocate_pages(): virtual memory exhaused! 
GuardMalloc[TrafficDemoEmp-2430]: expandUniquingTable(): VMCopyFailed 
GuardMalloc[TrafficDemoEmp-2430]: allocate_pages(): virtual memory exhaused! 
GuardMalloc[TrafficDemoEmp-2430]: expandUniquingTable(): VMCopyFailed 

ガードmallocのでアプリが正常に動作しますが、それを有効にして無効化これらのメッセージでアプリがクラッシュします。私がLeaks and Allocationsの機器でプロファイルを作成すると、漏れは検出されず、30 MBから80 MBの間のすべてのメモリ範囲のLive Bytes値(その時点で何が行われているかにもよる)が表示されます。確かにそれはあまりにも多くのアプリのメモリではない。

しかし、メッセージはあまりにも多くのメモリを使用して私のアプリを指していますが、私は何が仮想メモリの枯渇につながっているのか分かりません。 Xcodeで利用できる他のツールやデバッガの設定はありますか?

おかげで、
デビッド

+3

NSZombiesは自由に解放されたものを実際に解放します。したがって、多くの割り当てを行っている場合はメモリを使い果たします。 – user1118321

+0

ゾンビを無効にするとこの問題が解決します。ありがとう。 –

+0

こんにちは、同じ問題がそこにあり、ゾンビを無効にすることで修正されました。しかし、私はその影響をどのように受けていないのですか、私に説明してください。 – Nikunj

答えて

9

User1118321は正しかったです。 NSZombiesがこの問題の原因でした。

この回答を提出すると、回答が受け入れられる可能性があります。

関連する問題