I have been trying to find references to
malloc in a shared library, but I got results which I don’t fully understand. I have two libraries which are pretty similar, in one of them I see malloc referenced:
readelf -Ws mylib.so | grep malloc 72: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [email protected]_2.2.5 (2) 53916: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc
The other doesn’t have it, all good so far. But if I compile with debug symbols and do
readelf --debug-dump=info, I see
malloc being referenced all over the place in both libs:
<1><31f72b>: Abbrev Number: 222 (DW_TAG_subprogram) <31f72d> DW_AT_name : (indirect string, offset: 0x2236cc4): malloc <31f731> DW_AT_decl_file : 319 <31f733> DW_AT_decl_line : 539 <31f735> DW_AT_type : <0x70ad> <31f739> DW_AT_declaration : 1 <31f739> DW_AT_external : 1
How to interpret this, is the lib statically linked against glibc?
Another question: any suggestion on a good way to trace heap allocations? They don’t have to be done via
malloc I guess?
Source: Windows Questions C++