17

我正在安装 Valgrind,但遇到了一些问题。我的平台信息:

Linux xx-ThinkPad-X61 3.2.0-39-generic-pae #62-Ubuntu SMP Wed Feb 27 22:25:11 UTC 2013 i686 i686 i386 GNU/Linux

我按照 valgrind 文件夹中 README 文件的安装说明进行操作。./configure -> make -> sudo make install。

看不懂README文件下面的提示,只是忽略了。

Important!  Do not move the valgrind installation into a place
different from that specified by --prefix at build time.  This will
cause things to break in subtle ways, mostly when Valgrind handles
fork/exec calls.

输入“valgrind ls -l”后,出现错误:

xx@xx-ThinkPad-X61:~/Downloads/valgrind-3.8.1$ valgrind ls -l
==7674== Memcheck, a memory error detector
==7674== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==7674== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==7674== Command: ls -l
==7674== 

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.so.2
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld-linux.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:  Cannot continue -- exiting now.  Sorry.

有人可以提出一些建议吗?

谢谢!

4

3 回答 3

16

我也遇到了这个错误,但最终以以下方式解决。

我有 64 位 Ubuntu 14.04,我的可执行文件是 32 位。当我使用 valgrind 运行我的 32 位可执行文件时,我遇到了同样的错误。即使在安装后libc6-dbg(使用 command apt-get install libc6-dbg),此错误也没有解决。

后来我发现libc6-dbg我的机器中存在的任何东西都是 64 位的,而 valgrind 需要 32 位libc6-dbg才能运行我的 32 位可执行文件。安装 32 位后libc6-dbg(使用命令apt-get install libc6-dbg:i386)它开始工作。

于 2015-04-01T14:59:15.840 回答
2

Valgrind 表示它无法工作,因为它缺少 libc 调试信息,并且它指示必须安装哪个软件包才能解决该问题。在您的情况下(Ubuntu),您必须安装 libc6-dbg

于 2013-04-01T16:46:33.367 回答
0
apt install -y libc6-dbg

它对我有用。(注意:没有 :i386。)
预感自从写了 rashok 的答案以来,Valgrind 可能已经升级到 64 位。

于 2020-11-17T17:14:14.583 回答