作者yan12125 (姥姥)
看板EE_DSnP
标题[心得] Valgrind
时间Tue Nov 12 17:23:38 2013
写作业四的时候有用到valgrind,提出来和大家分享一下:
valgrind是一个程式,可用来检查记忆体是否有错误的使用情况,例如指标指到不该指的
地方或memory leak,在某些方面比gdb还要好用。
使用前要先安装,打apt-get install valgrind或yum install valgrind就可以了。
要执行时,valgrind後面接档名跟参数,例如:
valgrind ./memTest -f tests/do1
如果有不合法的存取,会显示invalid read或invalid write以及类似gdb的backtrace,
就可以知道程式在哪些地方用到有问题的指标。
如果要检查是否有memory leak,需要加一个参数--leak-check=full,例如:
valgrind --leak-check=full ./memTest -f tests/do1
程式结束後会告诉你哪些指标没有被delete/free,以及那个指标new/malloc的地方。基
本上看definitely lost就好,indirectly lost和possibly lost可以不用理他。
要注意的是,compile的时候g++要加上-g这个参数,否则backtrace可能没办法显示行号
。
抛砖引玉,希望对大家有帮助!
--
白日登山望烽火,黄昏饮马傍交河。行人刁斗风沙暗,公主琵琶幽怨多。
野云万里无城郭,雨雪纷纷连大漠。胡雁哀鸣夜夜飞,胡儿眼泪双双落。
闻道玉门犹被遮,应将性命逐轻车。年年战骨埋荒外,空见蒲桃入汉家。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.248.144
1F:推 michael0728n:推推 好用 11/12 17:25
2F:推 candy0515:推~~ 11/12 21:22
3F:推 ric2k1:推! 11/13 01:59
4F:推 ColaNut:推~! 11/13 13:04
5F:推 huei820504:太晚看到Q_Q 好用推 11/22 00:32