[What]valgrind 基本安装与使用

valgrind 主要用于监控应用代码的内存操作错误,应用代码运行于其环境之中,这会大大降低程序的运行速度。

但其优点是不用修改原应用代码便可调试,所以在很多场合依然很实用。

交叉编译

  • 下载地址下载最新源码包
    • 推荐使用 axel 开通多线程下载以提高速度
  • 解压后,编译 configure 文件,找到 armv7* 一行修改为 armv7*|arm*
    • 否则将配置失败
  • 按照如下命令配置
#prefix根据在目标机上安装位置而定
CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux --prefix=/usr/
  • 编译及安装,最后将生成的文件拷贝至目标机目录即可
    • 编译生成的文件也忒大了,为了减小文件系统的大小, 建议将prefix指定为sd卡挂载目录,最后将软件包拷贝进sd卡即可
make
make install DESTDIR=/home/cec/valgrind
  • 在目标机上使用 valgrind ls -l 来测试程序运行是否正常

使用

valgrind 默认的工具就是 memory leak检测,所以测试程序简单粗暴:

valgrind --leak-check=yes <exec>

常见错误

a function redirection

这种错误就是 valgrind 需要的动态链接库被 strip 掉了,这需要在制作根文件系统时不要对这个库进行 strip.

Last Updated 2018-10-14 日 19:32.
Render by hexo-renderer-org with Emacs 26.1 (Org mode 9.1.14)