]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug 512037 - malloc trace does not print free size or alignment
authorPaul Floyd <pjfloyd@wanadoo.fr>
Thu, 13 Nov 2025 19:32:28 +0000 (20:32 +0100)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Thu, 13 Nov 2025 19:32:28 +0000 (20:32 +0100)
NEWS
coregrind/m_replacemalloc/vg_replace_malloc.c
memcheck/tests/cxx17_aligned_new.stderr.exp
memcheck/tests/cxx17_aligned_new.stderr.exp_32
memcheck/tests/sized_delete.stderr.exp
memcheck/tests/sized_delete.stderr.exp-x86

diff --git a/NEWS b/NEWS
index 29bf4debe37b95f61ff634b941fcc30df6de1dac..84673b407728d444ca801e2031d5434ce9dc9541 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -34,6 +34,7 @@ are not entered into bugzilla tend to get forgotten about or ignored.
         unrecognized command-line option
         '-Wno-alloc-size-larger-than=18446744073709551615'
 512030  s390x: bfp-convert testcase fails
+512037  malloc trace does not print free size or alignment
 
 To see details of a given bug, visit
   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
index c3f42b86337892c8f62695c133496c26c56cf4d4..f9de7cccd52f96591292bbbdbe00abd171625446 100644 (file)
@@ -306,7 +306,7 @@ extern int * __error(void) __attribute__((weak));
       \
       DO_INIT; \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n); \
-      MALLOC_TRACE(#fnname "(%llu)", (ULong)n ); \
+      MALLOC_TRACE(#fnname "(%zu)", n ); \
       \
       v = (void*)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, n ); \
       MALLOC_TRACE(" = %p\n", v ); \
@@ -329,7 +329,7 @@ extern int * __error(void) __attribute__((weak));
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n); \
       struct AlignedAllocInfo aligned_alloc_info = { .orig_alignment=alignment, .size=n, .alloc_kind=AllocKind##tag}; \
       VERIFY_ALIGNMENT(&aligned_alloc_info); \
-      MALLOC_TRACE(#fnname "(size %llu, al %llu)", (ULong)n, (ULong)alignment ); \
+      MALLOC_TRACE(#fnname "(%zu, %zu)", n, alignment ); \
       \
       if ((alignment == 0) \
        || ((alignment & (alignment - 1)) != 0)) { \
@@ -356,7 +356,7 @@ extern int * __error(void) __attribute__((weak));
       DO_INIT; \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord) zone);       \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n);                   \
-      MALLOC_TRACE(#fnname "(%p, %llu)", zone, (ULong)n ); \
+      MALLOC_TRACE(#fnname "(%p, %zu)", zone, n ); \
       \
       v = (void*)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, n ); \
       MALLOC_TRACE(" = %p\n", v ); \
@@ -376,8 +376,8 @@ extern int * __error(void) __attribute__((weak));
       void* v; \
       \
       DO_INIT; \
-      TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n);           \
-      MALLOC_TRACE(#fnname "(%llu)", (ULong)n );        \
+      TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n); \
+      MALLOC_TRACE(#fnname "(%zu)", n ); \
       \
       v = (void*)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, n ); \
       MALLOC_TRACE(" = %p\n", v ); \
@@ -407,7 +407,7 @@ extern int * __error(void) __attribute__((weak));
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n);           \
       struct AlignedAllocInfo aligned_alloc_info = { .orig_alignment=alignment, .size=n, .alloc_kind=AllocKind##tag }; \
       VERIFY_ALIGNMENT(&aligned_alloc_info); \
-      MALLOC_TRACE(#fnname "(size %llu, al %llu)", (ULong)n, (ULong)alignment ); \
+      MALLOC_TRACE(#fnname "(%zu, %zu)", n, alignment ); \
       \
       if ((alignment == 0) \
        || ((alignment & (alignment - 1)) != 0)) { \
@@ -1022,7 +1022,7 @@ extern int * __error(void) __attribute__((weak));
        DO_INIT; \
        TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)size); \
        VERIFY_ALIGNMENT(&aligned_alloc_info); \
-       MALLOC_TRACE(#fnname "(%p)\n", p ); \
+       MALLOC_TRACE(#fnname "(%p, %zu)\n", p, size ); \
        if (p == NULL)  \
        return; \
        (void)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, p ); \
@@ -1065,7 +1065,7 @@ extern int * __error(void) __attribute__((weak));
        TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)alignment); \
        TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)size); \
        VERIFY_ALIGNMENT(&aligned_alloc_info); \
-       MALLOC_TRACE(#fnname "(%p)\n", p ); \
+       MALLOC_TRACE(#fnname "(%p, %zu, %zu)\n", p, size, alignment ); \
        if (p == NULL)  \
        return; \
        (void)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, p ); \
@@ -1163,7 +1163,7 @@ extern int * __error(void) __attribute__((weak));
       DO_INIT; \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)size); \
       VERIFY_ALIGNMENT(&aligned_alloc_info); \
-      MALLOC_TRACE(#fnname "(%p)\n", p ); \
+      MALLOC_TRACE(#fnname "(%p, %zu)\n", p, size ); \
       if (p == NULL)  \
          return; \
       (void)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, p ); \
@@ -1238,7 +1238,7 @@ extern int * __error(void) __attribute__((weak));
       DO_INIT; \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)alignment); \
       VERIFY_ALIGNMENT(&aligned_alloc_info); \
-      MALLOC_TRACE(#fnname "(%p)\n", p ); \
+      MALLOC_TRACE(#fnname "(%p, %zu)\n", p, alignment ); \
       if (p == NULL)  \
          return; \
       (void)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, p ); \
@@ -1255,7 +1255,7 @@ extern int * __error(void) __attribute__((weak));
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)size); \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)alignment); \
       VERIFY_ALIGNMENT(&aligned_alloc_info); \
-      MALLOC_TRACE(#fnname "(%p)\n", p ); \
+      MALLOC_TRACE(#fnname "(%p, %zu, %zu)\n", p, size, alignment ); \
       if (p == NULL)  \
          return; \
       (void)VALGRIND_NON_SIMD_CALL1( info.tl_##vg_replacement, p ); \
@@ -1709,7 +1709,7 @@ extern int * __error(void) __attribute__((weak));
       DO_INIT; \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(ptrV); \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(new_size); \
-      MALLOC_TRACE("zone_realloc(%p,%p,%llu)", zone, ptrV, (ULong)new_size ); \
+      MALLOC_TRACE("zone_realloc(%p,%p,%zu)", zone, ptrV, new_size ); \
       v = (void*)VALGRIND_NON_SIMD_CALL2( info.tl_realloc, ptrV, new_size ); \
       MALLOC_TRACE(" = %p\n", v ); \
       if (v == NULL) { \
@@ -1732,7 +1732,7 @@ extern int * __error(void) __attribute__((weak));
       DO_INIT; \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(ptrV); \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(new_size); \
-      MALLOC_TRACE("realloc(%p,%llu)", ptrV, (ULong)new_size ); \
+      MALLOC_TRACE("realloc(%p,%zu)", ptrV, new_size ); \
       v = (void*)VALGRIND_NON_SIMD_CALL2( info.tl_realloc, ptrV, new_size ); \
       MALLOC_TRACE(" = %p\n", v ); \
       if (v == NULL) { \
@@ -1755,7 +1755,7 @@ extern int * __error(void) __attribute__((weak));
       DO_INIT; \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(ptrV); \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(new_size); \
-      MALLOC_TRACE("reallocf(%p,%llu)", ptrV, (ULong)new_size ); \
+      MALLOC_TRACE("reallocf(%p,%zu)", ptrV, new_size ); \
       v = (void*)VALGRIND_NON_SIMD_CALL2( info.tl_realloc, ptrV, new_size ); \
       MALLOC_TRACE(" = %p\n", v ); \
       if (v == NULL) { \
@@ -1781,7 +1781,7 @@ extern int * __error(void) __attribute__((weak));
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(ptrV); \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(nmemb); \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(size); \
-      MALLOC_TRACE("reallocarray(%p,%llu,%llu)", ptrV, (ULong)nmemb, (ULong)size ); \
+      MALLOC_TRACE("reallocarray(%p,%zu,%zu)", ptrV, nmemb, size ); \
       if (nmemb > 0 && (SizeT)-1 / nmemb < size) { \
          SET_ERRNO_ENOMEM; \
          MALLOC_TRACE(" = 0\n"); \
@@ -1883,8 +1883,8 @@ extern int * __error(void) __attribute__((weak));
       VERIFY_ALIGNMENT(&aligned_alloc_info);                                   \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED((UWord)zone);                        \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n);                                  \
-      MALLOC_TRACE("zone_memalign(%p, al %llu, size %llu)", zone,              \
-                   (ULong)alignment, (ULong)n);                                \
+      MALLOC_TRACE("zone_memalign(%p, al %zu, size %zu)", zone,                \
+                   alignment, n);                                              \
                                                                                \
       if (alignment == 0 || alignment % sizeof(void*) != 0 ||                  \
           (alignment & (alignment - 1)) != 0) {                                \
@@ -1952,8 +1952,7 @@ extern int * __error(void) __attribute__((weak));
       DO_INIT; \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(n); \
       VERIFY_ALIGNMENT(&aligned_alloc_info); \
-      MALLOC_TRACE("memalign(al %llu, size %llu)", \
-                   (ULong)alignment, (ULong)n ); \
+      MALLOC_TRACE("memalign(al %zu, size %zu)", alignment, n ); \
       \
       /* Round up to minimum alignment if necessary. */ \
       if (alignment < VG_MIN_MALLOC_SZB) \
@@ -1986,8 +1985,7 @@ extern int * __error(void) __attribute__((weak));
                                                                                \
       DO_INIT;                                                                 \
       VERIFY_ALIGNMENT(&aligned_alloc_info);                                   \
-      MALLOC_TRACE("memalign(alignment %llu, size %llu)", (ULong)alignment,    \
-                   (ULong)size);                                               \
+      MALLOC_TRACE("memalign(%zu, %zu)", alignment, size);                     \
       if ((VG_MEMALIGN_NO_SIZE_ZERO && (size == 0)) ||                         \
           (VG_MEMALIGN_NO_ALIGN_ZERO && (alignment == 0)) ||                   \
           (VG_MEMALIGN_ALIGN_POWER_TWO &&                                      \
@@ -2193,8 +2191,7 @@ extern int * __error(void) __attribute__((weak));
       DO_INIT; \
       TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(size); \
       VERIFY_ALIGNMENT(&aligned_alloc_info); \
-      MALLOC_TRACE("posix_memalign(al %llu, size %llu)", \
-            (ULong)alignment, (ULong)size ); \
+      MALLOC_TRACE("posix_memalign(%p, %zu, %zu)", memptr, alignment, size ); \
       /* Test whether the alignment argument is valid.  It must be \
          a power of two multiple of sizeof (void *).  */ \
       if (alignment == 0 \
@@ -2337,8 +2334,7 @@ extern int * __error(void) __attribute__((weak));
        DO_INIT; \
        TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(size); \
        VERIFY_ALIGNMENT(&aligned_alloc_info); \
-       MALLOC_TRACE("aligned_alloc(al %llu, size %llu)", \
-                (ULong)alignment, (ULong)size ); \
+       MALLOC_TRACE("aligned_alloc(al %zu, size %zu)", alignment, size ); \
        \
        /* Round up to minimum alignment if necessary. */ \
        if (alignment < VG_MIN_MALLOC_SZB) \
@@ -2370,8 +2366,7 @@ extern int * __error(void) __attribute__((weak));
        \
        DO_INIT; \
        VERIFY_ALIGNMENT(&aligned_alloc_info); \
-       MALLOC_TRACE("aligned_alloc(al %llu, size %llu)", \
-                (ULong)alignment, (ULong)size ); \
+       MALLOC_TRACE("aligned_alloc(%zu, %zu)", alignment, size ); \
        if ((VG_ALIGNED_ALLOC_NO_SIZE_ZERO && (size == 0)) \
            || (VG_ALIGNED_ALLOC_NO_ALIGN_ZERO && (alignment == 0)) \
            || (VG_ALIGNED_ALLOC_SIZE_MULTIPLE_ALIGN && alignment && (size % alignment != 0)) \
@@ -2431,7 +2426,7 @@ extern int * __error(void) __attribute__((weak));
          return 0; \
       \
       pszB = (SizeT)VALGRIND_NON_SIMD_CALL1( info.tl_malloc_usable_size, p ); \
-      MALLOC_TRACE(" = %llu\n", (ULong)pszB ); \
+      MALLOC_TRACE(" = %zu\n", pszB ); \
       \
       return pszB; \
    }
index 389bebf74729f3d2f56a1adbdc94d48e9c2d39bf..2cd04045e6a1f74fcc3a96f20ade281926f5d4d5 100644 (file)
@@ -3,26 +3,26 @@ _Znwm(4) = 0x........
 _ZdlPv(0x........)
 _Znam(20) = 0x........
 _ZdaPv(0x........)
-_ZnwmSt11align_val_t(size 64, al 64) = 0x........
-_ZdlPvSt11align_val_t(0x........)
-_ZnamSt11align_val_t(size 320, al 64) = 0x........
-_ZdaPvSt11align_val_t(0x........)
+_ZnwmSt11align_val_t(64, 64) = 0x........
+_ZdlPvSt11align_val_t(0x........, 64)
+_ZnamSt11align_val_t(320, 64) = 0x........
+_ZdaPvSt11align_val_t(0x........, 64)
 _Znwm(4) = 0x........
-_ZdlPvm(0x........)
+_ZdlPvm(0x........, 4)
 _Znam(20) = 0x........
-_ZdaPvm(0x........)
-_ZnwmSt11align_val_t(size 64, al 64) = 0x........
-_ZdlPvmSt11align_val_t(0x........)
-_ZnamSt11align_val_t(size 320, al 64) = 0x........
-_ZdaPvmSt11align_val_t(0x........)
+_ZdaPvm(0x........, 20)
+_ZnwmSt11align_val_t(64, 64) = 0x........
+_ZdlPvmSt11align_val_t(0x........, 64, 64)
+_ZnamSt11align_val_t(320, 64) = 0x........
+_ZdaPvmSt11align_val_t(0x........, 320, 64)
 _ZnwmRKSt9nothrow_t(4) = 0x........
-_ZdlPvm(0x........)
+_ZdlPvm(0x........, 4)
 _ZnamRKSt9nothrow_t(20) = 0x........
 _ZdaPv(0x........)
-_ZnwmSt11align_val_tRKSt9nothrow_t(size 64, al 64) = 0x........
-_ZdlPvmSt11align_val_t(0x........)
-_ZnamSt11align_val_tRKSt9nothrow_t(size 320, al 64) = 0x........
-_ZdaPvSt11align_val_t(0x........)
+_ZnwmSt11align_val_tRKSt9nothrow_t(64, 64) = 0x........
+_ZdlPvmSt11align_val_t(0x........, 64, 64)
+_ZnamSt11align_val_tRKSt9nothrow_t(320, 64) = 0x........
+_ZdaPvSt11align_val_t(0x........, 64)
 
 HEAP SUMMARY:
     in use at exit: ... bytes in ... blocks
index c7239766b83781d6273975c33889213e143de6c0..e5c1debbdafeea17d52f8f46e2370142e488f085 100644 (file)
@@ -3,26 +3,26 @@ _Znwj(4) = 0x........
 _ZdlPv(0x........)
 _Znaj(20) = 0x........
 _ZdaPv(0x........)
-_ZnwjSt11align_val_t(size 64, al 64) = 0x........
-_ZdlPvSt11align_val_t(0x........)
-_ZnajSt11align_val_t(size 320, al 64) = 0x........
-_ZdaPvSt11align_val_t(0x........)
+_ZnwjSt11align_val_t(64, 64) = 0x........
+_ZdlPvSt11align_val_t(0x........, 64)
+_ZnajSt11align_val_t(320, 64) = 0x........
+_ZdaPvSt11align_val_t(0x........, 64)
 _Znwj(4) = 0x........
-_ZdlPvj(0x........)
+_ZdlPvj(0x........, 4)
 _Znaj(20) = 0x........
-_ZdaPvj(0x........)
-_ZnwjSt11align_val_t(size 64, al 64) = 0x........
-_ZdlPvjSt11align_val_t(0x........)
-_ZnajSt11align_val_t(size 320, al 64) = 0x........
-_ZdaPvjSt11align_val_t(0x........)
+_ZdaPvj(0x........, 20)
+_ZnwjSt11align_val_t(64, 64) = 0x........
+_ZdlPvjSt11align_val_t(0x........, 64, 64)
+_ZnajSt11align_val_t(320, 64) = 0x........
+_ZdaPvjSt11align_val_t(0x........, 320, 64)
 _ZnwjRKSt9nothrow_t(4) = 0x........
-_ZdlPvj(0x........)
+_ZdlPvj(0x........, 4)
 _ZnajRKSt9nothrow_t(20) = 0x........
 _ZdaPv(0x........)
-_ZnwjSt11align_val_tRKSt9nothrow_t(size 64, al 64) = 0x........
-_ZdlPvjSt11align_val_t(0x........)
-_ZnajSt11align_val_tRKSt9nothrow_t(size 320, al 64) = 0x........
-_ZdaPvSt11align_val_t(0x........)
+_ZnwjSt11align_val_tRKSt9nothrow_t(64, 64) = 0x........
+_ZdlPvjSt11align_val_t(0x........, 64, 64)
+_ZnajSt11align_val_tRKSt9nothrow_t(320, 64) = 0x........
+_ZdaPvSt11align_val_t(0x........, 64)
 
 HEAP SUMMARY:
     in use at exit: ... bytes in ... blocks
index 91bd71c38809f9001fcea2813b10fa5247a0eb45..a3da508ac1307754afc90149a3dd2a295ee16dbb 100644 (file)
@@ -1,4 +1,4 @@
 _Znwm(4) = 0x........
-_ZdlPvm(0x........)
+_ZdlPvm(0x........, 4)
 _Znam(20) = 0x........
-_ZdaPvm(0x........)
+_ZdaPvm(0x........, 20)
index 1f6e9f91558a6467524e2b6b9af8bce7832dc441..2f5636d540ab2e2b0f5c891c68015d79cfc41161 100644 (file)
@@ -1,4 +1,4 @@
 _Znwj(4) = 0x........
-_ZdlPvj(0x........)
+_ZdlPvj(0x........, 4)
 _Znaj(20) = 0x........
-_ZdaPvj(0x........)
+_ZdaPvj(0x........, 20)