Alternatywa dla przestarzałej funkcji __malloc_hook glibc
Piszę profiler pamięci dla C i przechwytuję wywołania domalloc
, realloc
ifree
funkcje przez malloc_hooks. Niestety, są one przestarzałe z powodu ich słabego zachowania w środowiskach wielowątkowych. Nie mogłem znaleźć dokumentu opisującego alternatywne rozwiązanie najlepszych praktyk w celu osiągnięcia tego samego, czy ktoś może mnie oświecić?
Czytałem to prosto#define malloc(s) malloc_hook(s)
zrobiłby to, ale to nie działa z konfiguracją systemu, o której myślę, ponieważ jest zbyt uciążliwa dla oryginalnej bazy kodu, aby była odpowiednia do użycia w narzędziu do profilowania / śledzenia. Konieczność ręcznej zmiany oryginalnego kodu aplikacji jest zabójcą dla każdego porządnego profilera. Optymalnie rozwiązanie, którego szukam, powinno być włączone lub wyłączone tylko przez połączenie z opcjonalną biblioteką współdzieloną. Na przykład moja bieżąca konfiguracja używa funkcji zadeklarowanej za pomocą__attribute__ ((constructor))
zainstalować przechwytywaniemalloc
haczyki.
Dzięki