[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Valgrind not working

From: Ludovic Courtès
Subject: Re: Valgrind not working
Date: Tue, 08 Mar 2022 11:12:43 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Hi Andreas,

Andreas Enge <> skribis:

> valgrind:  Fatal error at startup: a function redirection
> valgrind:  which is mandatory for this platform-tool combination
> valgrind:  cannot be set up.  Details of the redirection are:
> valgrind:
> valgrind:  A must-be-redirected function
> valgrind:  whose name matches the pattern:      strlen
> valgrind:  in an object with soname matching:
> valgrind:  was not found whilst processing
> valgrind:  symbols from the object with soname:
> valgrind:
> valgrind:  Possible fixes: (1, short term): install glibc's debuginfo
> valgrind:  package on this machine.  (2, longer term): ask the packagers
> valgrind:  for your Linux distribution to please in future ship a non-
> valgrind:  stripped (or whatever the dynamic linker .so is called)
> valgrind:  that exports the above-named function using the standard
> valgrind:  calling conventions for this platform.  The package you need
> valgrind:  to install for fix (1) is called
> valgrind:
> valgrind:    On Debian, Ubuntu:                 libc6-dbg
> valgrind:    On SuSE, openSuSE, Fedora, RHEL:   glibc-debuginfo
> valgrind:
> valgrind:  Note that if you are debugging a 32 bit process on a
> valgrind:  64 bit system, you will need a corresponding 32 bit debuginfo
> valgrind:  package (e.g. libc6-dbg:i386).
> valgrind:
> valgrind:  Cannot continue -- exiting now.  Sorry.

I’m late to the party, but here’s the trick you can use:

--8<---------------cut here---------------start------------->8---
$ guix build -e '(@@ (gnu packages commencement) glibc-final)' 
$ valgrind 
 uname -o
==16741== Memcheck, a memory error detector
==16741== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==16741== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
==16741== Command: uname -o
==16741== HEAP SUMMARY:
==16741==     in use at exit: 0 bytes in 0 blocks
==16741==   total heap usage: 2,813 allocs, 2,813 frees, 184,302 bytes allocated
==16741== All heap blocks were freed -- no leaks are possible
==16741== For lists of detected and suppressed errors, rerun with: -s
==16741== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
--8<---------------cut here---------------end--------------->8---

I think the reason it no longer works out of the box is because we
now[*] use ‘--strip-unneeded’ instead of ‘--strip-debug’, since commit

We’d need to double-check the hypothesis and fix it on ‘core-updates’.

In the meantime, HTH!


[*] Effective end of December 2021, when ‘core-updates’ was merged into

reply via email to

[Prev in Thread] Current Thread [Next in Thread]