c++ - Valgrind: fatal error :memcheck.h:没有那个文件或目录

标签 c++ valgrind

我们正在尝试追踪 Valgrind 报告的 C++ 项目中的条件跳转或移动取决于未初始化的值。调查结果中提供的地址并不是很有帮助,因为它指向 GCC 扩展汇编 block 的末尾,而不是导致问题的实际变量。

根据 Valgrind 的 Eliminating undefined values with Valgrind, the easy way , 我们可以使用 VALGRIND_CHECK_MEM_IS_DEFINEDVALGRIND_CHECK_VALUE_IS_DEFINED包括<memcheck.h>之后.此外,这些宏或函数显然记录在头文件中(肯定没有它们的手册页)。

但是,当我包含 <memcheck.h> 时或 <valgrind/memcheck.h> ,结果是:

fatal error: memcheck.h: No such file or directory

基于 Stack Overflow 的 How do I find which rpm package supplies a file I'm looking for? ,我执行了一个 RPM file search , 但它返回 0 次 memcheck.h .

问题

  1. 博客文章有点过时了。这些信息仍然适用吗?

  2. 如果信息准确,那么我在哪里可以找到 memcheck.h ?


$ uname -a
Linux localhost.localdomain 4.1.4-200.fc22.x86_64 #1 SMP Tue Aug 4 03:22:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

$ g++ --version
g++ (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4)
...

$ valgrind --version
valgrind-3.10.1

最佳答案

您必须安装包含 memcheck.h 的 RPM valgrind-devel

*-devel 包通常位于“可选”存储库中(例如 RHEL 6 上的 rhel-x86_64-server-optional-6)。此外,您可以在 Google 上找到 RPM,下载并自行安装。无论采用哪种方法,memcheck.h 通常在安装后放置在 /usr/include/valgrind 中。

关于c++ - Valgrind: fatal error :memcheck.h:没有那个文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32048354/

相关文章:

c++ - 来自命名管道的ifstream-检查是否无阻塞,是否有数据

c++ - BlueZ5 : Event when inbound pairing is complete

c - Mac OS X 上的 Valgrind 错误 printf a double

c - Valgrind 错误

c++ - STL::map 插入一个带约束的值

c++:如何将换行插入到 sprintf 连接中?

c++ - 使用 OpenCV CascadeClassifier 的内存泄漏

c - Valgrind 报告无效的 Realloc

c++ - 使用 Visual Studio 在 C++ 应用程序中查找内存泄漏

c++ - 结果得到-858993460 c++