1#ifndef TPF_TRACKNEW_HPP
2#define TPF_TRACKNEW_HPP
13#include <memory_resource>
24 static inline int numMalloc = 0;
25 static inline size_t sumSize = 0;
26 static inline bool doTrace =
false;
27 static inline bool inNew =
false;
43 static void*
allocate(std::size_t size, std::size_t align,
const char* call)
52 p = std::malloc(size);
57 p = _aligned_malloc(size, align);
59 p = std::aligned_alloc(size, align);
67 printf(
"#%d %s ", numMalloc, call);
68 printf(
"(%zu bytes, ", size);
71 printf(
"%zu-byte aligned) ", align);
75 printf(
"def-aligned) ");
78 printf(
"=> %p (total: %zu bytes)\n", (
void*)p, sumSize);
87 printf(
"%d allocations for %zu bytes\n", numMalloc, sumSize);
92void*
operator new (std::size_t size)
98void*
operator new (std::size_t size, std::align_val_t align)
104void*
operator new[] (std::size_t size)
110void*
operator new[] (std::size_t size, std::align_val_t align)
116void operator delete (
void* p)
noexcept
121void operator delete (
void* p, std::size_t)
noexcept
123 ::operator
delete(p);
126void operator delete (
void* p, std::align_val_t)
noexcept
135void operator delete (
void* p, std::size_t, std::align_val_t align)
noexcept
137 ::operator
delete(p, align);
static void * allocate(std::size_t size, std::size_t align, const char *call)
static void trace(bool b)