现成的工具,比如valgrind不是哪里都兼容,不如直接hook malloc这个符号,systemtap这种更好一些,但是生产环境又不好装
gcc mtrace.c -o libmtrace.so -fPIC -shared
LD_PRELOAD=./libmtrace.so ./test
mtracemalloc: 0x291a980 64
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(_Znwm+0x18) [0x7fa489401188]
/usr/local/lib/librocksdb.so.4.3(_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_emplace_back_auxIJRKS5_EEEvDpOT_+0x58) [0x7fa48a89f568]
/usr/local/lib/librocksdb.so.4.3(_ZN7rocksdb6DBImpl18PurgeObsoleteFilesERKNS_10JobContextE+0x1a9f) [0x7fa48a88ebaf]
/usr/local/lib/librocksdb.so.4.3(_ZN7rocksdb6DBImpl19DeleteObsoleteFilesEv+0x82) [0x7fa48a88f062]
/usr/local/lib/librocksdb.so.4.3(_ZN7rocksdb2DB4OpenERKNS_9DBOptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_22ColumnFamilyDescriptorESaISD_EEPSC_IPNS_18ColumnFamilyHandleESaISJ_EEPPS0_+0x10ca) [0x7fa48a895fba]
/usr/local/lib/librocksdb.so.4.3(_ZN7rocksdb2DB4OpenERKNS_7OptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPPS0_+0x1a5) [0x7fa48a896475]
/usr/local/lib/librocksdb.so.4.3(rocksdb_open+0x46) [0x7fa48a840886]