Как исправить ошибку «Нет доступной памяти для программы сейчас: небезопасно вызывать malloc»? - PullRequest
3 голосов
/ 06 декабря 2011

Как мне отладить и исправить эту ошибку

Нет доступной памяти для программы сейчас: небезопасно вызывать malloc

Анализатор не показывает никакой причины.

1 Ответ

4 голосов
/ 06 декабря 2011

Используйте инструменты для проверки на утечки и потерю памяти из-за оставшейся, но не утечки памяти.Последний является неиспользованной памятью, на которую все еще указывают.Используйте Heapshot в инструменте Allocations на инструментах.

Чтобы узнать, как использовать Heapshot для поиска разрыва памяти, см .: bbum blog

По сути, существует метод запуска инструмента выделения инструментовсделайте снимок кучи, запустите интуицию вашего кода и повторите повторение снимка кучи 3 или 4 раза.Это будет указывать на память, которая выделена и не освобождена во время итераций.

Чтобы выяснить результаты, откройте для просмотра отдельные распределения.

Если вам нужно увидеть, где происходят сохранения, релизы и авто-релизыдля объекта используйте инструменты:

Запустите инструменты, в Allocations включите «Record reference counts on» (вы должны остановить запись, чтобы установить опцию).Заставьте сборщик запустить, остановить запись, найти там ivar (datePickerView), выполнить детализацию, и вы сможете увидеть, где произошли все сохранения, выпуски и автоматические выпуски.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...