all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Valgrind not working
@ 2022-01-18 16:55 Andreas Enge
  2022-03-08 10:12 ` Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Enge @ 2022-01-18 16:55 UTC (permalink / raw)
  To: help-guix

Hello,

when trying to debug a program of mine with valgrind, I see the error
message below. Following the suggestion to install libc6-dbg, I installed
glibc:debug, but without success.

The executable itself has these properties according to "file":
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /gnu/store/2fk1gz2s7ppdicynscra9b19byrrr866-glibc-2.33/lib/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, with debug_info, not stripped

Is there a problem with our valgrind or with my setup?

Thanks for your help,

Andreas

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:   ld-linux-x86-64.so.2
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld-linux-x86-64.so.2
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 ld.so (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.



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Valgrind not working
  2022-01-18 16:55 Valgrind not working Andreas Enge
@ 2022-03-08 10:12 ` Ludovic Courtès
  2022-09-02 15:28   ` Valgrind not working [core-update fixes?] zimoun
  0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2022-03-08 10:12 UTC (permalink / raw)
  To: Andreas Enge; +Cc: help-guix

Hi Andreas,

Andreas Enge <andreas@enge.fr> 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:   ld-linux-x86-64.so.2
> valgrind:  was not found whilst processing
> valgrind:  symbols from the object with soname: ld-linux-x86-64.so.2
> 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 ld.so (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)' 
/gnu/store/xgarlnscgbm9l04karj15xpc4nn14ak1-glibc-2.33-debug
/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33
/gnu/store/4jdghmc65q7i7ib89zmvq66l0ghf7jc4-glibc-2.33-static
$ valgrind --extra-debuginfo-path=/gnu/store/xgarlnscgbm9l04karj15xpc4nn14ak1-glibc-2.33-debug/lib/debug 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== 
GNU/Linux
==16741== 
==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== 
==16741== All heap blocks were freed -- no leaks are possible
==16741== 
==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
e0f31baacc6ad30096a332b69433c85f5830bb2c.

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

In the meantime, HTH!

Ludo’.

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Valgrind not working [core-update fixes?]
  2022-03-08 10:12 ` Ludovic Courtès
@ 2022-09-02 15:28   ` zimoun
  0 siblings, 0 replies; 3+ messages in thread
From: zimoun @ 2022-09-02 15:28 UTC (permalink / raw)
  To: Ludovic Courtès, Andreas Enge; +Cc: help-guix, Marius Bakke

Hi,

On Tue, 08 Mar 2022 at 11:12, Ludovic Courtès <ludo@gnu.org> wrote:

>> valgrind:  Fatal error at startup: a function redirection

[...]

>> valgrind:  Cannot continue -- exiting now.  Sorry.
>
> I’m late to the party, but here’s the trick you can use:

Well, I am even later to the party. ;-)

> --8<---------------cut here---------------start------------->8---
> $ guix build -e '(@@ (gnu packages commencement) glibc-final)' 
> /gnu/store/xgarlnscgbm9l04karj15xpc4nn14ak1-glibc-2.33-debug
> /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33
> /gnu/store/4jdghmc65q7i7ib89zmvq66l0ghf7jc4-glibc-2.33-static
> $ valgrind --extra-debuginfo-path=/gnu/store/xgarlnscgbm9l04karj15xpc4nn14ak1-glibc-2.33-debug/lib/debug 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== 
> GNU/Linux
> ==16741== 
> ==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== 
> ==16741== All heap blocks were freed -- no leaks are possible
> ==16741== 
> ==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---

This trick is really nice…

> 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
> e0f31baacc6ad30096a332b69433c85f5830bb2c.
>
> We’d need to double-check the hypothesis and fix it on ‘core-updates’.

…but since core-updates is moving, maybe it is time for this
double-check.  Well, gentle reminder. :-)

How could I double-check without rebuilding locally the world?


Cheers,
simon




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-09-02 15:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-18 16:55 Valgrind not working Andreas Enge
2022-03-08 10:12 ` Ludovic Courtès
2022-09-02 15:28   ` Valgrind not working [core-update fixes?] zimoun

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.