Получаете размер фрагмента памяти malloc'd? - PullRequest
1 голос
/ 23 августа 2011

Некоторый код Linux вызывает malloc в 100 местах, и мне нужно знать, насколько велик какой-либо один блок.Обычно я бы просто записывал эти размеры в функцию my_malloc, но мне не разрешено делать это в этом случае.Есть ли способ попросить подсистему malloc предоставить размер куска для указателя malloc?

Ответы [ 3 ]

3 голосов
/ 23 августа 2011

Лучше всего использовать трюк LD_PRELOAD для перехвата вызовов на malloc (определение здесь ).Вам даже не нужно перекомпилировать исходный код.

В зависимости от того, что вы пытаетесь обнаружить, Google Perftools также может быть полезным.

1 голос
/ 23 августа 2011
*((size_t *)ptr - 1) & ~7

/ me охватывает.

0 голосов
/ 23 августа 2011

К сожалению, сделать это невозможно.

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