Advice on checking for memory leaks and dangling resources?
-
wrote on 24 Nov 2010, 10:00 last edited by
I'm looking for pointers on how I can check whether I've created memory leaks in my Qt programme, or left resources dangling.
In someways Qt is quite dangerous. It does a lot of garbage collection for you, but doesn't provide a complete solution.
-
wrote on 24 Nov 2010, 10:04 last edited by
use valgrind or other similar tools.
-
wrote on 24 Nov 2010, 10:18 last edited by
Qt solves QObject childs, not more. For all other stuff, I propose the usage of smart pointers. And valgrind or other tools for testing....
-
wrote on 24 Nov 2010, 10:29 last edited by
As far as I know the Valgrind is Linux-only. What is your OS?
-
wrote on 24 Nov 2010, 10:57 last edited by
Windows 7 ;o(
I guess in an ideal world such an important function would be part of the Qt SDK.
-
wrote on 24 Nov 2010, 11:28 last edited by
why should it be part of Qt? it should be part of the Compiler :-)
For windows (commercially) use Purify (but that's expensive)...
-
wrote on 24 Nov 2010, 14:12 last edited by
and Purify is not really very useful, very slow and needs tonnes of memory :( we need a better tool for win
-
wrote on 24 Nov 2010, 14:36 last edited by
Purify might be slow, but it works and shows, where the problems are, and not only for memory leaks. And currently, I haven't tested other memory profiler for windows. Do you have any suggestions, which tool to use instead saying, we need another?
-
wrote on 24 Nov 2010, 14:45 last edited by
[quote author="Gerolf Reinwardt" date="1290609416"]Do you have any suggestions, which tool to use instead saying, we need another?[/quote]
nope i'm looking for some alternative too ...
-
wrote on 24 Nov 2010, 14:50 last edited by
You can use Bounds Checker, which is not faster, but different :-)
You can spend really much money and use AppSite, which would be shooting on birds with a cannon
Some people state, AQTime could be used for that (I only used that for performance profiling up to now).
If you search the web, most people state, all memory profilers for windows are too slow or too expensive (like AppSite which has a different scope, and cost something like my house :-) )I know no freeware checker like valgrind :-(
-
wrote on 24 Nov 2010, 14:55 last edited by
Purify is commercial application:(
-
wrote on 24 Nov 2010, 17:29 last edited by
like most memory profilers for windows :-(
I didn't find a good memory profiler for linux for free... -
wrote on 24 Nov 2010, 17:46 last edited by
Some years ago I have used this tool http://www.codeproject.com/KB/applications/visualleakdetector.aspx
I do not know about modern versions of Visual Studio support, but it is free and open source.
-
wrote on 24 Nov 2010, 19:29 last edited by
Hi,
if I understood correctly, visualleakdetector is a replacement of the MSVS internal leak detection (CRT debug functions) which must be added programatically. It only works in debug mode. and it can be compiled for new MSVS versions by using the source code. could work but only in the same way as the MSVS build in detection with just a bit more information...
-
wrote on 25 Nov 2010, 05:43 last edited by
[quote author="Gerolf Reinwardt" date="1290626948"]could work but only in the same way as the MSVS build in detection with just a bit more information...[/quote]
Sorry, I do not know it internals. When I use it then in the debug output on program exit I get the human readable list of leaks with information where leak is created. It was enough for me at that time.
-
wrote on 14 Dec 2010, 11:00 last edited by
AQTime can detect memory leaks, but it's mainly for profiling.
Intel Parallel Inspector (is also part of the Intel Parallel Studio) is another option.
Both are commerical, but you can always get a trial version. -
Some years ago I have used this tool http://www.codeproject.com/KB/applications/visualleakdetector.aspx
I do not know about modern versions of Visual Studio support, but it is free and open source.
Bannedwrote on 9 Sept 2019, 05:45 last edited by RamonFarron 9 Sept 2019, 05:46This post is deleted!