valgrind 做常态内存泄露的检查

2019-07-13 04:48发布

 
嵌入式Linux软件中对于吃内存是比较忌讳的,嵌入式设备的内存比较宝贵。
在平时的编码过程中,需要我们经常去检查内存泄露的问题,如果靠
经验去做,一行一行的代码检查,效果不太好,往往有遗漏。
valgrind是检测内存泄露的比较好的开源项目:
http://valgrind.org/docs/download_docs.html,这是其官方帮助文档,比较全面
另外有个网友写的博文介绍如何使用valgrind,不错,大家可以参考:
http://blog.csdn.net/zhoujunyi/archive/2007/09/11/1780749.aspx
我想强调的是:
应该把内存泄露的检测做一个常态的工作,比如说GNOME Power Manager这个开源项目
就是把valgrind作为一个常态检测工具,写了一个脚本:
valrind_gpm.sh 内容如下:
killall gnome-power-manager
export G_SLICE=always-malloc
export G_DEBUG=gc-friendly
valgrind --tool=memcheck --leak-check=full --leak-resolution=high ./gnome-power-manager --verbose --no-daemon --timed-exit &> ./debug-valgrind.log
这样就可以在代码编译完成后,及时的运行以下valgrind_gpm.sh这个脚本,即时的检查
程序修改后的内存异常问题,才能达到及时发现问题,解决问题。程序会越来越稳定。 这很值得我们借鉴,内存检测做到平时,才能解决光吃不吐,消化不良的问题。