7 #include <unordered_set>
25 using AllocMap = std::map<const void*, AllocInfo>;
26 using AllocTree = std::map<const void*, std::vector<const void*>>;
31 void *
realloc(
void *ptr,
size_t new_size,
size_t size)
override;
32 void free(
void *ptr,
size_t size)
override;
34 void rename(
const void *ptr,
const char *new_name)
override;
35 void reparent(
const void *ptr,
const void *parent)
override;
68 void update_name(
const void *ptr,
const char *new_name);
97 void draw_backtrace(
const std::stacktrace& trace)
const;
98 void draw_name(
const AllocInfo& info)
const;
99 void draw_extern_name(
const void *ptr)
const;
100 void draw_tree_child(
const void *ptr,
const AllocInfo& info)
const;
101 void draw_tree_group(
const void *ptr,
const AllocInfo& info)
const;
102 void draw_tree_node_info(
const void *ptr,
const AllocInfo& info)
const;
103 void draw_tree_node(
const void *ptr)
const;
104 void draw_tree()
const;
107 void draw_flat()
const;
const char * get_name() const
void update_parent(const void *ptr, const void *parent)
bool has_parent(const void *ptr) const
void * malloc(size_t size) override
void create_alloc(void *ptr, size_t size)
void remove_parents(const void *ptr)
std::map< const void *, AllocInfo > AllocMap
size_t add_stacktrace(const std::stacktrace &trace)
std::unordered_map< size_t, std::stacktrace > stacktraces
void delete_alloc(void *ptr)
std::unordered_set< void * > live_allocs
AllocMap::iterator AllocMapIter
void reparent(const void *ptr, const void *parent) override
void * realloc(void *ptr, size_t new_size, size_t size) override
std::map< const void *, std::vector< const void * > > AllocTree
void rename(const void *ptr, const char *new_name) override
void update_name(const void *ptr, const char *new_name)
TraceArena(const char *id, Collect collect)
void free(void *ptr, size_t size) override
bool has_children(const void *ptr) const
bool is_external(const void *ptr) const
check if the given pointer was not allocated by this allocator
size_t id
the id of the allocation
std::string name
the name of the allocation
size_t trace
hash of the stack trace
std::chrono::steady_clock::time_point timestamp
the time of the allocation
Memory size
the size of the allocation
const void * parent
the parent of the allocation