15.QT-Valgrind内存分析

QT检测内存泄漏

在Linux  Qt Creator里,有个Valgrind内存分析器,它用来检测应用程序是否发生内存泄漏

安装:

sudo apt-get install valgrind

如何使用Valgrind内存分析器

1.启动Valgrind内存分析器

 

2.分析出有多处有可疑内存泄漏的地方,以下面为例:

上图的蓝色线表示位于Qt库,所以我们不需要操心.

看到红色线,是处于我们项目位置的,然后进入func()函数,发现可能是*trans指针没有Qt父对象,所以不能被自动释放

需要注意的是: Valgrind内存分析器分析出来的都是可疑对象,并不一定真的是内存泄漏.

 

3.然后通过打印,发现其父对象地址确实为0:

 

4.指定Qt父对象后,然后从新分析内存,可以看到项目里没有内存泄漏了:

 

posted @ 2018-05-02 17:23  诺谦  阅读(5249)  评论(0编辑  收藏  举报