FS#75027 - [valgrind] Impossible to run valgrind without an internet connection

Attached to Project: Arch Linux
Opened by Sam Linnfer (lllf) - Saturday, 11 June 2022, 05:31 GMT
Last edited by freswa (frederik) - Saturday, 11 June 2022, 12:40 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
Impossible to run Valgrind without an internet connection.
Valgrind uses `debuginfod` to load debug symbols over the internet.
No way to install debug symbols offline either.

Additional info:
* package version(s)

$ pacman -Q valgrind glibc
valgrind 3.19.0-4
glibc 2.35-6

Steps to reproduce:
1. Turn off internet
2.

$ echo "int main() {}" > test.c
$ clang test.c -o test
$ valgrind ./test
==2165074== Memcheck, a memory error detector
==2165074== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==2165074== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==2165074== Command: ./test
==2165074==

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.
This task depends upon

Closed by  freswa (frederik)
Saturday, 11 June 2022, 12:40 GMT
Reason for closing:  Not a bug
Additional comments about closing:  Feel free to download the -debug packages and install them if you need to do offline work. They're not updated by pacman though.
Comment by Sam Linnfer (lllf) - Saturday, 11 June 2022, 05:38 GMT
This is also a privacy issue where it uploads whatever you're debugging to the debuginfourl

https://bugzilla.redhat.com/show_bug.cgi?id=2051971
Comment by Chih-Hsuan Yen (yan12125) - Saturday, 11 June 2022, 10:09 GMT
> No way to install debug symbols offline either.

FYI, you can install debug symbols for glibc via https://america.mirror.pkgbuild.com/core-debug/os/x86_64/glibc-debug-2.35-6-x86_64.pkg.tar.zst. There are more debug packages on *.mirror.pkgbuild.com mirrors [1].

<del>Probably all these tricks should be added to wiki...</del> It's mentioned on wiki https://wiki.archlinux.org/title/Debugging/Getting_traces#Install_debug_packages

[1] https://archlinux.org/news/debug-packages-and-debuginfod/

Loading...