1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00

Add dbug_get_mem_root_alloc_size() debug helper

This commit is contained in:
Sergei Petrunia
2026-10-07 12:55:51 +03:00
parent 4ea6e54bdb
commit 309b50d4f6
3 changed files with 18 additions and 0 deletions

View File

@@ -912,6 +912,7 @@ extern void init_alloc_root(PSI_memory_key key, MEM_ROOT *mem_root,
extern void *alloc_root(MEM_ROOT *mem_root, size_t Size);
extern void *multi_alloc_root(MEM_ROOT *mem_root, ...);
extern void free_root(MEM_ROOT *root, myf MyFLAGS);
/* There is also dbug_get_mem_root_alloc_size() in sql/sql_test.cc */
extern void move_root(MEM_ROOT *to, MEM_ROOT *from);
extern void set_prealloc_root(MEM_ROOT *root, char *ptr);
extern void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size,

View File

@@ -746,4 +746,18 @@ const char *dbug_which_mem_root(THD *thd, void *ptr)
return "Unknown";
}
/* Return how much memory was malloc'ed for this mem_root */
size_t dbug_get_mem_root_alloc_size(const MEM_ROOT *mem_root)
{
size_t total=0;
const USED_MEM *ptrs[]= {mem_root->free, mem_root->used, NULL};
for (const USED_MEM **p= ptrs; *p; p++)
{
for (const USED_MEM *block= *p; block; block= block->next)
total += block->size;
}
return total;
}
#endif

View File

@@ -52,6 +52,9 @@ const char *dbug_print_row(TABLE *table, const uchar *rec);
bool dbug_is_mem_on_mem_root(const MEM_ROOT *mem_root, void *ptr);
const char *dbug_which_mem_root(THD *thd, void *ptr);
/* Return how much memory was malloc'ed for this mem_root */
size_t dbug_get_mem_root_alloc_size(const MEM_ROOT *mem_root);
#else
// A dummy implementation is used in release builds
inline const char *dbug_print_item(Item *item) { return NULL; }