[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [Bug 272940] New: valgrind refuses to work with memalign() on for
From: Pierre Habouzit <madcoder () debian ! org>
Date: 2011-05-10 12:58:42
Message-ID: bug-272940-17878 () http ! bugs ! kde ! org/
[Download RAW message or body]
https://bugs.kde.org/show_bug.cgi?id=272940
Summary: valgrind refuses to work with memalign() on for large
align requests
Product: valgrind
Version: unspecified
Platform: Unlisted Binaries
OS/Version: Linux
Status: NEW
Severity: normal
Priority: NOR
Component: memcheck
AssignedTo: jseward@acm.org
ReportedBy: madcoder@debian.org
edmonds@chase{0}:~/code/test$ cat memalign.c
#include <stdlib.h>
#define size (1 << 21)
int main(void) {
void *ptr;
posix_memalign(&ptr, size, size);
free(ptr);
return 0;
}
edmonds@chase{0}:~/code/test$ gcc -O0 -ggdb -Wall -o memalign memalign.c
edmonds@chase{0}:~/code/test$ valgrind ./memalign
==31507== Memcheck, a memory error detector.
==31507== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==31507== Using LibVEX rev 1854, a library for dynamic binary translation.
==31507== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==31507== Using valgrind-3.3.1-Debian, a dynamic binary instrumentation
framework.
==31507== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==31507== For more details, rerun with: -v
==31507==
VG_(arena_memalign)(0x3879AB60, 2097152, 2097152)
bad alignment
valgrind: the 'impossible' happened:
VG_(arena_memalign)
==31507== at 0x380194CC: report_and_quit (m_libcassert.c:140)
==31507== by 0x380195E4: panic (m_libcassert.c:210)
==31507== by 0x38019652: vgPlain_core_panic_at (m_libcassert.c:215)
==31507== by 0x38019671: vgPlain_core_panic (m_libcassert.c:220)
==31507== by 0x380228BE: vgPlain_arena_memalign (m_mallocfree.c:1392)
==31507== by 0x38002909: vgMemCheck_new_block (mc_malloc_wrappers.c:195)
==31507== by 0x38002BEA: vgMemCheck_memalign (mc_malloc_wrappers.c:259)
==31507== by 0x38033F08: vgPlain_scheduler (scheduler.c:1277)
==31507== by 0x380448D3: run_a_thread_NORETURN (syswrap-linux.c:89)
sched status:
running_tid=1
Thread 1: status = VgTs_Runnable
==31507== at 0x4C1FFCF: memalign (vg_replace_malloc.c:460)
==31507== by 0x4C20068: posix_memalign (vg_replace_malloc.c:569)
==31507== by 0x400536: main (memalign.c:7)
Note: see also the FAQ.txt in the source distribution.
It contains workarounds to several common problems.
If that doesn't help, please report this bug to: www.valgrind.org
In the bug report, send all the above text, the valgrind
version, and what Linux distro you are using. Thanks.
edmonds@chase{1}:~/code/test$
there is a check in coregrind/m_mallocfree.c:1385 which reads,
// Check that the requested alignment seems reasonable; that is, is
// a power of 2.
if (req_alignB < VG_MIN_MALLOC_SZB
|| req_alignB > 1048576
|| VG_(log2)( req_alignB ) == -1 /* not a power of 2 */) {
VG_(printf)("VG_(arena_memalign)(%p, %lu, %lu)\nbad alignment",
a, req_alignB, req_pszB );
VG_(core_panic)("VG_(arena_memalign)");
/*NOTREACHED*/
}
the comment or the code is wrong, as there are certainly powers of 2
larger than 1048576.
This is Debian bug #489297
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489297)
--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic