Currently, only ordinary PLT entries for malloc, free, etc. are found by heaptrack_inject. Some libraries have a different type of entry (in the .plt.got section) which heaptrack misses. (I'm not sure why the compiler does this-- can anyone enlighten me?) This causes heaptrack to miss some allocations and/or frees. (I found this problem when heaptrack was telling me about tons of memory leaks that didn't really exist-- it was only seeing the mallocs but not the corresponding frees.)
This patch adds support for the other type of relocation table (.rela.dyn section) so that hopefully no functions are missed now.