I am trying to extend functionality of the MSVCRTD_operator_new_dbg(), so did #include "msvcrt/crtdbg.h" in the file dlls/msvcrtd/debug.c . Is that OK? I have found some differences in used parameter types of some functions, like: int <-> long int. void (*) <-> void (__cdecl *_CRT_DUMP_CLIENT) (void *, size_t) Then I see all the declared function are defined to be non-operational: | #endif /* _DEBUG */ | | #define _CrtCheckMemory() ((int)1) | #define _CrtDbgReport(...) ((int)0) | #define _CrtDoForAllClientObjects(f,c) ((void)0) | #define _CrtDumpMemoryLeaks() ((int)0) Yet then I see lots of declared functions are prefixed with __cdecl and _CRTIMP prefixes. | #ifndef _CRTIMP | #ifdef _DLL | #define _CRTIMP __declspec(dllimport) | #else /* ndef _DLL */ | #define _CRTIMP | #endif /* _DLL */ | #endif /* _CRTIMP */ Do we need to sync crtdbg.h with native one? What parts then, all mentioned? (Maybe I should direct this q exceptionally to Alexandre)