QT檢測內存泄漏
在Linux Qt Creator里,有個Valgrind內存分析器,它用來檢測應用程序是否發生內存泄漏
安裝:
sudo apt-get install valgrind
如何使用Valgrind內存分析器
1.啟動Valgrind內存分析器
2.分析出有多處有可疑內存泄漏的地方,以下面為例:
上圖的藍色線表示位於Qt庫,所以我們不需要操心.
看到紅色線,是處於我們項目位置的,然后進入func()函數,發現可能是*trans指針沒有Qt父對象,所以不能被自動釋放
需要注意的是: Valgrind內存分析器分析出來的都是可疑對象,並不一定真的是內存泄漏.
3.然后通過打印,發現其父對象地址確實為0:
4.指定Qt父對象后,然后從新分析內存,可以看到項目里沒有內存泄漏了: