Как работает обнаружение утечки памяти XCode? - PullRequest
3 голосов
/ 23 февраля 2010

Как инструмент XCode Instrument Leak определяет, является ли объект утечкой или просто что-то еще не выпущено? Я довольно новичок в Objective C, инструмент утечки обнаруживает утечку в коде, с которым я работаю. Но код выглядит для меня здраво. Просто интересно, насколько я могу доверять этому инструменту?

1 Ответ

4 голосов
/ 23 февраля 2010

«Утечка» как объект, который все еще выделен, но ваше приложение больше не имеет ссылки указывая на этот объект. Поскольку у вас больше нет ссылки, вы не сможете освободить объект, поэтому это утечка.

Как показывает man-страница утечки :

утечки идентифицируют утечку памяти - память, которую приложение выделило, но было потеряно и не может быть освобождено. В частности, утечки исследуют память указанного процесса на предмет значений, которые могут быть указателями на буферы, выделенные malloc. Любой буфер, достижимый из указателя в доступной для записи памяти, регистра, или в стеке предполагается использование памяти. Любой буфер, достижимый из указателя в достижимом Также предполагается, что выделенный malloc буфер используется. Буферы, которые недоступны, являются утечками; буферы никогда не могут быть освобождены, потому что в памяти нет указателя на буфер, и, следовательно, free () никогда не может быть вызван для этих буферов

Возможно, вы захотите взглянуть на инструмент ObjectAlloc в Инструментах.

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