安装valgrind,启动时出现致命错误

2024-01-08

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

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

thanks!


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

我有 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)它开始工作了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装valgrind,启动时出现致命错误 的相关文章

  • Rc 依赖循环的最小示例是什么?

    我正在尝试编写一个泄漏内存的 Rust 程序由于具有引用计数的循环 下面的示例看起来应该会导致内存泄漏 但根据 Valgrind 的说法 它不会泄漏内存 是什么赋予了 test rs use std cell RefCell use std
  • Valgrind 了解堆摘要中分配的字节数增加吗?

    我一直在研究调试分叉 TCP 服务器中的内存使用情况 我认为我做得很好 我只是似乎无法在 堆摘要 中找到有关 分配的字节数 的信息 我的服务器运行的时间越长 这个数字似乎就会不断增加 27526 27526 HEAP SUMMARY 275
  • C 库中的 Valgrind 错误?

    Valgrind 显示大小为 8 的错误的未初始化值 有时 以下条件跳转会出现未初始化值错误 我所做的就是使用 gcc 附带的 stdc 库打印格式化字符串 和内置的 vsnprintf 这是一个名为 format 的方法 它是自定义字符串
  • 如何对守护程序进行内存检查?

    我编写了一个 C 应用程序 它会永远运行直到手动终止 它监视其他重要的应用程序 因此 我的守护进程应用程序不应停机 记住这一点 我想看看我的应用程序中是否存在内存泄漏 我使用了 valgrind 但由于该应用程序永远运行 因此 valgri
  • 如何使用 valgrind 启动 Android 应用程序

    上周我一直在寻找这个问题的答案 如何使用 valgrind 启动 Android 应用程序 我知道我可以使用 am 命令启动应用程序 但它会启动应用程序并退出 我正在编写一个使用 NDK 执行本机 C 代码的应用程序 我需要检查它是否存在可
  • 地址 0x0 未被堆栈、分配或(最近)释放

    我对 C 很陌生 似乎无法弄清楚以下代码有什么问题 int main char filen file txt FILE file fopen filen r if file NULL char line 128 while fgets li
  • 如何学习 C 调试和最佳实践 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我用 C 语言编写了一个 Apache 模块 在某些条件下 我可以让它出现段错误 但我不知道为什么 此时 它可能是我的代码 可能是我编
  • 在 OSX 上,Valgrind 报告此内存泄漏,它来自哪里?

    在 OSX 上 Valgrind 报告此内存泄漏 它来自哪里 该代码是用 g 作为 c 代码编译的 我这样做是为了函数重载 13088 18 bytes in 1 blocks are definitely lost in loss rec
  • 如何对系统调用 brk 进行二进制检测? (x86-64 Linux)(也许是 valgrind?)

    我想用仪器syscall brk http www kernel org doc man pages online pages man2 brk 2 html 和其他电话 但这是第一顺序 这对我来说最重要 给定二进制 最好是在实际的系统调用
  • valgrind - 地址 ---- 是分配大小为 8 的块后的 0 字节

    首先 我知道similar已提出问题 但是 我想问一个关于真正原始 C 数据类型的更一般的简单问题 所以就是这样 In main c我调用一个函数来填充这些字符串 int main int argc char argv char host
  • TBB 可能存在内存泄漏

    测试程序 include
  • Valgrind 未显示错误使用 c_str() 的无效内存访问

    想象一下这样的代码 string f string r ab return r int main const char c f c str printf s n c return 0 这段代码可能会崩溃 对吧 因为那个字符串c指向被破坏 但
  • valgrind - 查找共享库中的内存泄漏

    我需要知道如何找出共享库中的内存泄漏 该库将被加载到发布二进制文件中 我的意思是我使用 g 选项构建的共享库 但加载共享库的二进制文件不是使用 g 选项构建的 我得到的泄漏报告如下 739 at 0x4A05809 malloc vg re
  • Valgrind 和 CUDA:报告的泄漏是真的吗?

    我的应用程序中有一个非常简单的 CUDA 组件 Valgrind 报告了大量泄漏和仍然可达的情况 所有这些都与 cudaMalloc 调用有关 这些泄露是真的吗 我打电话cudaFree对于每一个cudaMalloc 这是 valgrind
  • 在 Valgrind 下运行 Eclipse

    这里有人成功运行 Eclipse 吗Valgrind http valgrind org 我正在与涉及 JNI 代码的特别棘手的崩溃作斗争 并希望 Valgrind 或许可以 再次 证明其卓越性 但是当我在 Valgrind 下运行 Ecl
  • 内存/地址消毒剂与 Valgrind

    我想要一些工具来诊断释放后使用错误和未初始化的错误 我正在考虑 Sanitizer 内存和 或地址 和 Valgrind 但我对它们的优点和缺点知之甚少 谁能告诉我 Sanitizer 和 Valgrind 的主要特点 区别和优缺点吗 编辑
  • std::map 中 std::string 的 Valgrind 内存泄漏

    这是 Valgrind 的输出 6519 at 0x4C25885 operator new unsigned long vg replace malloc c 319 6519 by 0x4EE65D8 std string Rep S
  • valgrind 和 iOS SDK 4.2?

    使用 valgrind 运行 iOS 4 2 应用程序时遇到问题 我从 Macports 安装了 valgrind 3 6 0 SVN Xcode 3 2 5 当我修改 main 以运行 valgrind 时 我得到以下输出 Detecte
  • 用户泄漏、libc++ 泄漏或误报

    我正在使用 clang 编译器和 libc 标准库在 C 11 中的 mac 上构建动态库 当我在链接到动态库的测试代码上运行 valgrind 时 我得到一块肯定丢失的内存 这是 valgrind 报告 45659 36 bytes in
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动

随机推荐