0

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 をどのように解釈するか。

4

1 に答える 1