首页 > 其他 > 详细

valgrind检查still reachable情况

时间:2018-06-22 12:13:01      阅读:487      评论:0      收藏:0      [点我收藏+]

valgrind --leak-check=yes检查bufr编解码程序运行时提示still reachable: 568 bytes in 1 blocks,如下图示:

技术分享图片

于是怀疑有内存泄漏,难道是malloc或calloc后没有free?但这样仍看不出哪里代码出了问题,于是开启valgrind的选项--show-reachable=yes再运行一遍,如下图示:

技术分享图片

从上图可以看出问题代码所在,原来是忘了关闭日志文件了!果断添加了close_log_file()在程序最后关闭日志文件,再检测一遍,程序正常。如下图示:

技术分享图片

总结:(1)提示没有free或still reachable的,不仅需要考虑mallc、calloc没有free的问题,还需考虑文件打开没有关闭的问题。

   (2)开启valgrind的选项--show-reachable=yes能显示导致still reachable问题的代码,否则不显示。

 

valgrind检查still reachable情况

原文:https://www.cnblogs.com/cloudwind2011/p/9212300.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!