Linux 下调试之valgrind 工具说明二

一.  valgrind 工具介绍

valgrind 是一款用于内存调试、内存泄漏检测以及性能分析、检测线程错误的软件开发工具集。

其中,包括 memcheck 工具是定位内存泄露或溢出等问题。这篇文章介绍 memcheck 工具的具体使用方法,其他的工具以后有机会再介绍。

valgrind 工具集常用选项如下:

(1)   --tool=<name>:运行 valgrind 中名为 toolname 的工具,默认 memcheck,还可以为cachegrid、drd、lackey、callgrind、helgrind、massif等;

(2)--quiet:安静地运行,只打印错误信息;

(3)--verbose:更详细的信息,增加错误数统计;

(4)--trace-childer=no | yes:跟踪子线程;

(5)--track-fds=no | yes:跟踪打开的文件描述;

(6)--time-stamp=no | yes:增加时间戳到 Log 信息;

(7)--log-fd=<number>:输出Log信息到文件描述符;

(8)--log-file=<file>:输出Log信息到指定的文件;

(9)--xml=yes:将错误信息以xml格式输出,只有memcheck可用;

(10)--xml-file=<file>:XML输出到指定文件;

(11)--error-limit=no | yes:如果错误太多,则停止显示新错误;

(12)--error-exitcode=<number>:如果发现错误,则返回错误代码;

(13)--leak-check=no | summary | full:对发现的内存泄露给出的信息级别,只有memcheck可用。(建议添加)

(14)--show-reachable=no | yes:用于控制是否检测控制范围之外的泄漏,比如全局指针、static指针等。

(15)–num-callers=(num):这个值默认是12,最高是50。表示显示多少层的堆栈,设置越高会使Valgrind运行越慢而且使用更多的内存,但是在嵌套调用层次比较高的程序中非常实用。

(16)--trace-children=no | yes:是否跟入子进程。
 

二. valgrind 工具集使用

valgrind 工具集包括很多的工具,每个工具将分别用于排查代码中出现的不同类型 bug。

valgrind 工具集中,常用的工具如下:

Memcheck,Callgrind,Cachegrind,Helgrind,Massif 等工具。

这些工具一般使用方法,即终端输入如下命令:

valgrind --tool=工具名  程序名

例如,当使用 Memcheck 工具检测一些内存问题时,可以使用如下命令定位问题:

valgrind --tool=memcheck --leak-check=full 程序名

注意:编译程序需要加上 -g 选项, 即包含调试信息,以便 Memcheck 工具检测到错误消息包含确切的 C 代码行号

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值