我们正在尝试追踪由Valgrind报告的C ++项目中的条件跳转或移动取决于未初始化的值。结果中提供的地址并没有真正帮助,因为它指向GCC扩展程序集块的末尾,而不是引起问题的实际变量。
根据Valgrind 用Valgrind消除未定义的值的简单方法,我们可以使用VALGRIND_CHECK_MEM_IS_DEFINED或VALGRIND_CHECK_VALUE_IS_DEFINED之后使用<memcheck.h>。此外,这些宏或函数显然记录在头文件中(它们绝对没有手册页)。
但是,当我包含<memcheck.h>或时<valgrind/memcheck.h>,结果为:
致命错误:memcheck.h:没有此类文件或目录
基于Stack Overflow的方法,如何找到哪个rpm软件包提供了我要查找的文件?,我执行了RPM文件搜索,但返回的匹配数为0 memcheck.h。
问题
该博客文章有些过时。这些信息仍然适用吗?
如果信息正确,那么我在哪里找到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
Run Code Online (Sandbox Code Playgroud)
您必须安装valgrind-devel包含memcheck.h.
这些*-devel软件包通常位于“可选”存储库中(例如rhel-x86_64-server-optional-6在 RHEL 6 上)。此外,您还可以在 Google 上找到 RPM,下载并自行安装。无论采用哪种方法,memcheck.h通常都是在/usr/include/valgrind安装后放置。
| 归档时间: |
|
| 查看次数: |
2756 次 |
| 最近记录: |