Какова цель крючков malloc? - PullRequest
2 голосов
/ 05 мая 2011

Какова цель использования перехватчиков malloc?И я читал, что он используется для профилирования памяти и т. Д., Но никогда не понимал, как.

Ответы [ 4 ]

6 голосов
/ 05 мая 2011

Что ж, если вы можете подключиться к поведению функций выделения, то вы можете отслеживать распределение памяти для профилирования и отладки.

Документация GCC по перехватам malloc имеет хороший небольшой пример демонстрация добавления выходных данных отладки при каждом вызове функций выделения.

Я не совсем уверен, что еще сказать вам ... разве этого недостаточно?

1 голос
/ 05 мая 2011

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

1 голос
/ 05 мая 2011

Один очень простой пример: предположим, вы знаете, что память, выделенная номером распределения N (N одинакова в каждом прогоне), всегда просачивается в ваш код. Вы можете установить хук и внутри поставить точку останова при условии "номер распределения равен N". Как только эта точка останова достигнута, вы изучаете стек вызовов и выясняете, почему именно эта память просочилась позже.

0 голосов
/ 05 мая 2011

Они также могут использоваться для полной замены распределителя, например, с umem или boehm-gc либо для тестирования, либо потому, что он более эффективен для конкретного приложения.

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