`
gvwyv37h
  • 浏览: 13839 次
社区版块
存档分类
最新评论

Using Valgrind to Find Memory Leaks

 
阅读更多

       document.write ("height='120' onmouseover='kevinloveada.stop()' onmouseout='kevinloveada.start()'>") document.write ("偶然") document.write ("徐志摩") document.write (" ") document.write ("
我是天空里的一片云,") document.write ("
偶尔投影在你的波心―― ") document.write ("
你不必讶异, ") document.write ("
更无须欢喜―― ") document.write ("
在转瞬间消灭了踪影。") document.write ("
") document.write ("
你我相逢在黑暗的海上,") document.write ("
你有你的,我有我的,方向;") document.write ("
你记得也好, ") document.write ("
最好你忘掉, ") document.write ("
在这交会时互放的光亮! ") document.write ("") document.write (" ")     Feedjit Live Blog Stats -->  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));   try { var pageTracker = _gat._getTracker("UA-7918401-1"); pageTracker._trackPageview(); } catch(err) {}  Have Some Music height="68" name="Kingbeful" align="middle"type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflash player" border="0" style="visibility:visible;width:160px;height:68px; " />   var qbf_temp = 0; var stat = new String(" 欢迎你来"); var num = stat.length; var dirction = 1; function test_s() { qbf_temp = qbf_temp + dirction; if (qbf_temp > num) { dirction = -1; } if (qbf_temp   舍得网 很不错的网站,注册之后用手机激活(免费),就能得到小礼品哦  -->  联系我 Communicate with me  
  
  
  
  
  
  In Shell Type: > valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./test The it reports:  ==5030==
  ==5030== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 12 from 1)
  ==5030== malloc/free: in use at exit: 16441 bytes in 3 blocks.
  ==5030== malloc/free: 33 allocs, 30 frees, 16648 bytes allocated.
  ==5030== For counts of detected errors, rerun with: -v
  ==5030== searching for pointers to 3 not-freed blocks.
  ==5030== checked 1401780 bytes.
  ==5030==
  ==5030== 15 bytes in 1 blocks are definitely lost in loss record 1 of 2
  ==5030== at 0x1B904984: malloc (vg_replace_malloc.c:131)
  ==5030== by 0x8049802: occ_cfg_gen_hier_str (occ_cfg_parse.y:256)
  ==5030== by 0x804910E: yyparse (occ_cfg_parse.y:165)
  ==5030== by 0x804997E: main (occ_cfg_parse.y:294)
  ==5030==
  ==5030==
  ==5030== 16426 bytes in 2 blocks are still reachable in loss record 2 of 2
  ==5030== at 0x1B904984: malloc (vg_replace_malloc.c:131)
  ==5030== by 0x804ABDD: yy_flex_alloc (lex.yy.c:2277)
  ==5030== by 0x804A867: yy_create_buffer (lex.yy.c:1957)
  ==5030== by 0x8049AE9: yylex (lex.yy.c:1182)
  ==5030==
  ==5030== LEAK SUMMARY:
  ==5030== definitely lost: 15 bytes in 1 blocks.
  ==5030== possibly lost: 0 bytes in 0 blocks.
  ==5030== still reachable: 16426 bytes in 2 blocks.
  ==5030== suppressed: 0 bytes in 0 blocks. what's the difference between "definitely lost", "indirectly lost", "possibly lost", "still reachable", and "suppressed"?
  The details are in the Memcheck section of the user manual.
  In short:
  "definitely lost" means your program is leaking memory -- fix those leaks!
  "indirectly lost" means your program is leaking memory in a pointer-based structure. (E.g. if the root node of a binary tree is "definitely lost", all the children will be "indirectly lost".) If you fix the "definitely lost" leaks, the "indirectly lost" leaks should go away. 
  "possibly lost" means your program is leaking memory, unless you're doing funny things with pointers.
  "still reachable" means your program is probably ok -- it didn't free some memory it could have. This is quite common and often reasonable. Don't use --show-reachable=yes if you don't want to see these reports.
  "suppressed" means that a leak error has been suppressed. There are some suppressions in the default suppression files. You can ignore suppressed errors.
分享到:
评论

相关推荐

    valgrind_MEMORY

    • Memory leaks -- where pointers to malloc’d blocks are lost forever • Mismatched use of malloc/new/new [] vs free/delete/delete [] • Overlapping src and dst pointers in memcpy() and related ...

    valgrind-3.8.1

    # Valgrind to find a suitable temporary directory. On the device, # there doesn't seem to be any one location which we always have # permission to write to. The instructions above use /sdcard. If # ...

    valgrind 介绍

    valgrind是一款运行在linux下的,用来定位c/c++程序中内存使用方面的错误的工具,包括:内存泄漏、使用未初始化的内存、读/写已释放的内存、读/写内存越界、使用malloc/new/new[]和free/delete/delete[]不匹配,等等...

    valgrind-arm64.zip

    valgrind-arm64.zip 预编译好的valgrind for android aarch64。 可参考下面链接跳过编译部分,直接安装使用。 https://blog.csdn.net/yaxf999/article/details/53749184 valgrind内存检测工具使用方法: adb push .\...

    valgrind manual

    valgrind

    valgrind的使用方法-详细手册.

    内存检查工具valgrind 的使用方法,通过valgrind 可以检查程序中的内存情况。

    valgrind 的安装 使用

    valgrind安装包 安装步骤 安装说明;以及一些检查内存泄漏的用法

    Valgrind简介和使用方法

    Valgrind的简介和使用方法,介绍了Valgrind的使用以及如何进行程序检查

    valgrind在android板上使用

    亲测可以正常使用的valgrind在android板子上使用,对于需要用valgrind检测内存泄漏等问题的开发者有参考价值。

    Valgrind_manual Valgrind手册文档

    valgrind 2017年版的最新手册manual. 并且带有书签. 阅读文档比博客收获更多.

    Valgrind

    Valgrind是一款很好用的C/C++测试工具,可以有效的测试其中的内存分配及泄露情况,在Linux环境使用简单

    valgrind内存检查工具

    valgrind,内存检查工具,用于内存泄漏的检查

    valgrind-arm.zip

    预编译好的valgrind for android armeabi-v7a。 可参考下面链接跳过编译部分,直接安装使用。 https://blog.csdn.net/yaxf999/article/details/53749184 adb push valgrind-arm/Inst\data/local/Inst /data/local...

    valgrind安装与使用

    valgrind安装与使用

    valgrind教程

    Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind这个名字取自北欧神话中英灵殿的入口。 Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届...

    Valgrind for ARMv6

    Valgrind tool for cross compilation on armv6.

    valgrind_manual.pdf

    valgrind_manual.pdf

    valgrind arm64交叉编译包

    valgrind arm64交叉编译包,可以直接运行,里面有安装说明。 附带解决valgrind运行时报错“Note that if you are debugging a 32 bit process on a 64 bit system...”的依赖库:dpkg -i libc6_2.31-13+deb11u5_arm...

    valgrind-3.19.0 内存检测工具 aarch64 6.5.0交叉编译移植版本

    valgrind-3.19.0 内存检测工具 aarch64 6.5.0交叉编译移植版本

    valgrind-3.13.0源码

    压缩包为valgrind-2.13.0源码,需要的同学自行下载,也可以到官网下载,官网可能会有更新的版本。

Global site tag (gtag.js) - Google Analytics