valgrind - 安装valgrind,启动时出现 fatal error

标签 valgrind

我正在安装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安装。

我无法理解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.


有人可以给些建议吗?

谢谢!

最佳答案

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

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

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

关于valgrind - 安装valgrind,启动时出现 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15721919/

相关文章:

c - Valgrind 报告太多 malloc

c++ - 带有 stringstreams 的 strdup 导致 valgrind 错误

c++ - 为什么 valgrind 说基本的 SDL 程序正在泄漏内存?

c++ - 如何调试 armv5 上的堆损坏

php - 使用 valgrind 调试 PHP cli 段错误

C++ 的 std::string 池,调试版本? std::string 和 valgrind 问题

c - Valgrind 输出,缺少释放?

c++ - 使用 "new"关键字时 sYSMALLOc 断言失败

c++ - 如何使用 Kcachegrind 理解 callgrind 的输出

c Valgrind 大小 4 的读取无效 -> 段错误