* 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.