Linux 下调试之valgrind 工具说明二
admin
2024-01-26 06:00:20
0

一.  valgrind 工具介绍

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

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

valgrind 工具集常用选项如下:

(1)   --tool=运行 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=输出Log信息到文件描述符;

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

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

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

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

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

(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 代码行号

相关内容

热门资讯

原创 美... 越来越多美国人不再相信美国经济为他们服务。 收入下滑、贫富分化是全球问题,但在美国,这两个问题又...
腰椎不适辨证针灸调理,从根源缓... 不少人长期久坐、弯腰劳作、受凉后都会出现腰椎酸胀、僵硬,严重时弯腰受限、牵扯腿疼麻木,现代多诊断腰肌...
莱伯泰科:公司发展战略立足于内... 证券日报网6月18日讯 ,莱伯泰科在接受调研者提问时表示,公司的发展战略立足于内生增长与外延扩张的双...
全球首个酒庄影响力指数发布,酒... 财闻 谢振宇 发自泸州 拉菲、玛歌、马爹利、麦卡伦——这些响当当的名字,背后都离不开一个共同的角色:...
首席专家[刘家顺]太原晋都医科... 太原晋都医科静脉曲张定点医院首席专家刘家顺:很多人发现自己久坐、久站后小腿酸胀沉重,腿上慢慢冒出红血...
安集科技官宣H股上市计划 安集科技于2026年6月16日公告,公司正在筹划发行境外上市股份(H股)并在香港联交所挂牌上市,旨在...
马斯克拿下7800亿天价薪酬 根据美国证券交易委员会(SEC)的一份新文件,马斯克已行使了其2018年特斯拉CEO薪酬方案的全部权...
碧芭宝贝:所有已检测纸尿裤产品... 6月21日,碧芭宝贝再就婴儿纸尿裤事件发布公告。公司称,目前品牌全核心主力系列成品第三方检测报告已全...
市场监管总局督导货拉拉整改,向... 来源:市场资讯 (来源:蓝鲸新闻) 据央视新闻,前期,市场监管总局依据《中华人民共和国反垄断法》公开...
翁虹晒女儿高中毕业礼vlog ... 搜狐娱乐讯 近日,翁虹在社交平台上晒出女儿水晶的高中毕业礼vlog,透露女儿以全年级前3、全A的成绩...
肌酸激酶(CK)检测:工作原理... 在细胞分析与临床诊断领域,肌酸激酶(CK)检测犹如精准的探测器,能够深入细胞内部,揭示肌肉组织损伤、...
超声引导下扳机指微创松解,告别... 很多人手指屈伸时出现明显弹响、卡顿,如同扣动扳机,伴随指根疼痛、晨起僵硬,严重时手指会卡住无法伸直或...
原创 中... 文、编辑 | 白前言当全球高科技产业为稀土焦灼之际,一条看似近乎完美的“去中国化”供应链路径悄然浮出...
受内存芯片短缺冲击,苹果确认产... 来源:环球网 【环球网科技综合报道】6月20日消息,据mashable报道称,苹果公司首席执行官蒂姆...
黄力医生:支架术后对寿命的影响... 很多做过支架手术的人群,术后都会陷入深深的焦虑,始终担心自己的寿命会受到严重影响,总觉得身体再也无法...
原创 2... 金饰克价冲破1306! 赤峰黄金几乎涨停,紫金矿业飙8%,但这轮黄金暴涨的真相,90%的人想反了 ...
300870,与谷歌GPU电源... 近一周,美埃科技、立昂微、欧陆通等个股获机构密集调研。 近一周机构调研个股有170多只 近一周(6月...
三门峡:中医急诊急救从“配角”... 慢性阻塞性肺疾病(以下简称慢阻肺)患者住院时间缩短35.5%,人均费用降低31.4%;急危重症患者平...
每周股票复盘:青岛银行(002... 截至2026年6月18日收盘,青岛银行(002948)报收于5.53元,较上周的5.99元下跌7.6...