[PATCH] malloc debug: fix compile error when enable macro MALLOC_DEBUG > 1

liqingqing liqingqing3@huawei.com
Mon Oct 26 13:32:20 GMT 2020


ping again.

On 2020/10/22 17:11, liqingqing wrote:
> malloc debug: fix compile error when enable macro MALLOC_DEBUG > 1.
> 
> this is because commit e9c4fe93b3855239752819303ca377dff0ed0553 has 
> change the struct malloc_chunk's member "size" to "mchunk_size".
> 
> the reproduction is like that:
> setp1: modify related Makefile.
> vim ../glibc/malloc/Makefile
> CPPFLAGS-malloc.o += -DMALLOC_DEBUG=2
> 
> step2: ../configure --prefix=/usr
>         make -j32
> 
> this will cause the compile error:
> /home/liqingqing/glibc_upstream/buildglibc/malloc/malloc.o
> In file included from malloc.c:1899:0:
> arena.c: In function ‘dump_heap’:
> arena.c:422:58: error: ‘struct malloc_chunk’ has no member named ‘size’
>         fprintf (stderr, "chunk %p size %10lx", p, (long) p->size);
>                                                            ^~
> arena.c:428:17: error: ‘struct malloc_chunk’ has no member named ‘size’
>         else if (p->size == (0 | PREV_INUSE))
> ---
>   malloc/arena.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/malloc/arena.c b/malloc/arena.c
> index cecdb7f4c4..202daf15b0 100644
> --- a/malloc/arena.c
> +++ b/malloc/arena.c
> @@ -419,13 +419,13 @@ dump_heap (heap_info *heap)
>                      ~MALLOC_ALIGN_MASK);
>     for (;; )
>       {
> -      fprintf (stderr, "chunk %p size %10lx", p, (long) p->size);
> +      fprintf (stderr, "chunk %p size %10lx", p, (long) 
> chunksize_nomask(p));
>         if (p == top (heap->ar_ptr))
>           {
>             fprintf (stderr, " (top)\n");
>             break;
>           }
> -      else if (p->size == (0 | PREV_INUSE))
> +      else if (chunksize_nomask(p) == (0 | PREV_INUSE))
>           {
>             fprintf (stderr, " (fence)\n");
>             break;


More information about the Libc-alpha mailing list