我想覆盖 new/delete 和 malloc/free。我的应用程序中链接了 tcmalloc 库。我的目标是添加统计数据。
从新开始,我打电话给 malloc。下面是一个全局示例。
void* my_malloc(size_t size, const char *file, int line, const char *func)
{
void *p = malloc(size);
....
....
....
return p;
}
#define malloc(X) my_malloc(X, __FILE__, __LINE__, __FUNCTION__)
void *
operator new(size_t size)
{
auto new_addr = malloc(size);
....
...
return new_addr;
}
新/删除覆盖工作正常。
我的问题是我直接使用 malloc 的其他文件会发生什么情况
first.cpp
malloc(sizeof(..))
second.cpp
malloc(sizeof(..))
这个 malloc 调用如何解释为我的宏不在头文件中。