mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
glibc.malloc.check: Wean away from malloc hooks
The malloc-check debugging feature is tightly integrated into glibc malloc, so thanks to an idea from Florian Weimer, much of the malloc implementation has been moved into libc_malloc_debug.so to support malloc-check. Due to this, glibc malloc and malloc-check can no longer work together; they use altogether different (but identical) structures for heap management. This should not make a difference though since the malloc check hook is not disabled anywhere. malloc_set_state does, but it does so early enough that it shouldn't cause any problems. The malloc check tunable is now in the debug DSO and has no effect when the DSO is not preloaded. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
@ -39,8 +39,6 @@ void *weak_variable (*__malloc_hook) (size_t, const void *) = NULL;
|
||||
void *weak_variable (*__realloc_hook) (void *, size_t, const void *) = NULL;
|
||||
void *weak_variable (*__memalign_hook) (size_t, size_t, const void *) = NULL;
|
||||
|
||||
#include "malloc-check.c"
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_25)
|
||||
|
||||
/* Support for restoring dumped heaps contained in historic Emacs
|
||||
@ -108,13 +106,6 @@ malloc_set_state (void *msptr)
|
||||
calls calloc and thus must be called only afterwards, so there
|
||||
cannot be more than one thread when we reach this point. */
|
||||
|
||||
/* Disable the malloc hooks (and malloc checking). */
|
||||
__malloc_hook = NULL;
|
||||
__realloc_hook = NULL;
|
||||
__free_hook = NULL;
|
||||
__memalign_hook = NULL;
|
||||
using_malloc_checking = 0;
|
||||
|
||||
/* Patch the dumped heap. We no longer try to integrate into the
|
||||
existing heap. Instead, we mark the existing chunks as mmapped.
|
||||
Together with the update to dumped_main_arena_start and
|
||||
|
Reference in New Issue
Block a user