valgrind -- 安装 -- 缺少 libc6-dbg

请关注我的下面文章, 对你绝对有用。

http://blog.csdn.net/wys7250578/article/details/44153271

 

valgrind -- 安装 -- 缺少 libc6-dbg

 
一、下载

http://valgrind.org/downloads/current.html

二、解压

tar -xf valgrind-3.7.0.tar.bz2

三、安装

./configure
make
make install

四、使用

valgrind --leak-check=full --show-reachable=yes ./dns_cap

五、问题

valgrind:  Fatal error at startup: a function redirection
.......
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

原因:缺少库 libc6-dbg

六、解决

sudo apt-get install libc6-dbg

出错:

The following packages have unmet dependencies:
  libc6-dbg: Depends: libc6 (= 2.11.1-0ubuntu7) but 2.11.1-0ubuntu7.10 is to be installed
E: Broken packages

原因:

软件源中libc-dbg的版本,依赖 libc6 (= 2.11.1-0ubuntu7),但系统中已安装的是 2.11.1-0ubuntu7.10

方案:

到官方网站下载与系统已安装libc6相对应的libc-dbg

http://packages.ubuntu.com/lucid-updates/libc6-dbg

安装:dpkg -i libc6-dbg_2.11.1-0ubuntu7.10_amd64.deb
 
 
七、使用参数
1.--tool= [default=memcheck]
--tool参数指明所要使用valgrind的哪一个工具,默认的为memcheck。因为 大多数情况下我们只会用到memcheck工具,因此该参数可以不写。
2.--leak-check=[default:summary]
在退出时检查是否有泄漏。
Summary只是告诉我们有多少次泄漏,yes或full会告诉我们每次泄漏的详细信息。
3.--show-reachable=[default:no] 
通过设定该参数为yes,则显示still reachable类型的内存泄漏信息
 
 
 
 
 
 
 
 

编译在arm版本的Valgrind-转

1.到官网http://valgrind.org/downloads/current.html#current下载Valgrind (目前的版本是3.8.1 2012-12-6)


2. 在Valgrind 代码解压目录执行/autogen.sh

执行不了 最后也能编译通过


3.在Valgrind 目录执行./configure --host=arm-linux --prefix=/opt/valgrind,提示以下错误

checking for a supported CPU... no (arm)
configure: error: Unsupported host architecture. Sorry


解决方法修改configure脚本

具体应该在检查host_os变量里加入匹配arm条件就行了,如原有的armv7*)改成armv7*|arm)

参考网址:http://bbs.chinaunix.net/thread-3557792-1-1.html

先查找交叉编译

再设置环境变量;

export CC=/dir/arm-none-linux-gnueabi-gcc

ubuntu下 mkdir /opt/valgrind目录 并修改权限 不然不能安装

4.make && make install


正常执行完后,就会把Valgrind安装到/opt/valgrind目录下



注意:--prefix=/opt/valgrind指定的目录要与开发板上放置的目录一致,不然运行valgrind时可能会出现“valgrind: failed to start tool 'memcheck' for platform 'arm-linux': No such file or directory”错误。

valgrind --tool=memcheck --leak-check=full ./t

就是在你的dev machine上编, 然后把 valgrind 应用程序 以及它要用的一坨lib copy到target机器上。那坨库很大,200多M ,不过如果你只用 memcheck,那就会少很多了。

你可能感兴趣的:(linux)