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:
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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; }
|
||||
|
||||
Reference in New Issue
Block a user