new/delete と malloc/free をオーバーライドしたい。アプリケーションに tcmalloc ライブラリがリンクされています。私の目的は、統計を追加することです。
new から 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 呼び出しが get をどのように解釈するか。