Альтернатива устаревшей функциональности __malloc_hook в glibc
Я пишу профилировщик памяти для C и для этого перехватывает вызовы,malloc
realloc
а такжеfree
работает через malloc_hooks. К сожалению, они устарели из-за их плохого поведения в многопоточных средах. Я не смог найти документ, описывающий альтернативное решение передовой практики для достижения того же, может кто-то просветить меня?
мы читали это просто#define malloc(s) malloc_hook(s)
это бы сработало, но это не работает с настройкой системы, которую я имею в виду, потому что она слишком навязчива к исходной базе кода, чтобы ее можно было использовать в инструменте профилирования / трассировки. Необходимость вручную изменять исходный код приложения является убийцей для любого приличного профилировщика. Оптимально, решение, которое я ищу, должно быть включено или отключено, просто связавшись с дополнительной общей библиотекой. Например, моя текущая установка использует функцию, объявленную с__attribute__ ((constructor))
установить перехватmalloc
крючки.
Спасибо