QT检测内存泄漏
在Linux Qt Creator里,有个Valgrind内存分析器,它用来检测应用程序是否发生内存泄漏
安装:
sudo apt-get install valgrind
如何使用Valgrind内存分析器
1.启动Valgrind内存分析器
2.分析出有多处有可疑内存泄漏的地方,以下面为例:
上图的蓝色线表示位于Qt库,所以我们不需要操心.
看到红色线,是处于我们项目位置的,然后进入func()函数,发现可能是*trans指针没有Qt父对象,所以不能被自动释放
需要注意的是: Valgrind内存分析器分析出来的都是可疑对象,并不一定真的是内存泄漏.
3.然后通过打印,发现其父对象地址确实为0:
4.指定Qt父对象后,然后从新分析内存,可以看到项目里没有内存泄漏了: