📄 mem0dbg.ic
字号:
/************************************************************************The memory management: the debug code. This is not an independentcompilation module but is included in mem0mem.*.(c) 1994, 1995 Innobase OyCreated 6/8/1994 Heikki Tuuri*************************************************************************/#ifdef UNIV_MEM_DEBUGextern mutex_t mem_hash_mutex;extern ulint mem_current_allocated_memory;/**********************************************************************Initializes an allocated memory field in the debug version. */voidmem_field_init(/*===========*/ byte* buf, /* in: memory field */ ulint n); /* in: how many bytes the user requested *//**********************************************************************Erases an allocated memory field in the debug version. */voidmem_field_erase(/*============*/ byte* buf, /* in: memory field */ ulint n); /* in: how many bytes the user requested *//*******************************************************************Initializes a buffer to a random combination of hex BA and BE.Used to initialize allocated memory. */voidmem_init_buf(/*=========*/ byte* buf, /* in: pointer to buffer */ ulint n); /* in: length of buffer *//*******************************************************************Initializes a buffer to a random combination of hex DE and AD.Used to erase freed memory.*/voidmem_erase_buf(/*==========*/ byte* buf, /* in: pointer to buffer */ ulint n); /* in: length of buffer *//*******************************************************************Inserts a created memory heap to the hash table ofcurrent allocated memory heaps.Initializes the hash table when first called. */voidmem_hash_insert(/*============*/ mem_heap_t* heap, /* in: the created heap */ const char* file_name, /* in: file name of creation */ ulint line); /* in: line where created *//*******************************************************************Removes a memory heap (which is going to be freed by the caller)from the list of live memory heaps. Returns the size of the heapin terms of how much memory in bytes was allocated for the user ofthe heap (not the total space occupied by the heap).Also validates the heap.NOTE: This function does not free the storage occupied by theheap itself, only the node in the list of heaps. */voidmem_hash_remove(/*============*/ mem_heap_t* heap, /* in: the heap to be freed */ const char* file_name, /* in: file name of freeing */ ulint line); /* in: line where freed */voidmem_field_header_set_len(byte* field, ulint len);ulintmem_field_header_get_len(byte* field);voidmem_field_header_set_check(byte* field, ulint check);ulintmem_field_header_get_check(byte* field);voidmem_field_trailer_set_check(byte* field, ulint check);ulintmem_field_trailer_get_check(byte* field);#endif /* UNIV_MEM_DEBUG */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -