Open myzhan opened 4 months ago
这个问题不是 memory-leak-detector 的问题,放这里供其他人参考。
因为 memory-leak-detector 依赖 addr2line 来解析一些 unknown 的地址,有些时候,它会给出错误的函数名,导致 memory-leak-detector 的聚合报告里面,出现一些不可能的堆栈。
例如下面一个例子
0x000000724b800000, 188743680, mmap64, 5 0x0000000000f53fb0 my_malloc() 0x0000000002014358 byte_buf::~byte_buf() 0x0000000002013bbc byte_buf::init(unsigned int)
其中 byte_buf::init() 通过一个 static inline 函数去调用 my_malloc,被 addr2line 误识别为 byte_buf::~byte_buf()。byte_buf::~byte_buf() 是一个虚函数。
这个问题不是 memory-leak-detector 的问题,放这里供其他人参考。
因为 memory-leak-detector 依赖 addr2line 来解析一些 unknown 的地址,有些时候,它会给出错误的函数名,导致 memory-leak-detector 的聚合报告里面,出现一些不可能的堆栈。
例如下面一个例子
其中 byte_buf::init() 通过一个 static inline 函数去调用 my_malloc,被 addr2line 误识别为 byte_buf::~byte_buf()。byte_buf::~byte_buf() 是一个虚函数。