We have a large legacy application written in Delphi where we were battling with resource leaks for ages. I have experimented with different products without much success when I realized if we already bought and using MadCollection; why not to try that one. Currently we have MadCollection 2.8.8 running on Delphi 10.3.3.
The first strange thing was that in the Tools -> MadExcept -> Configuration only shows 5 checkboxes (IDE exception catching, unicode hack and 3 project adjustment options) and does not allow me to turn resource monitoring on. After a bit of Googling I just added StartLeakChecking(False); before Application.Initialize in the .dpr file and it seemed to be working.
After getting rid of leaks in the logon screen and the framework (I know, I know...) I went ahead to actually do real testing; and I hit a brick wall. Just by logging on and then closing the application the "Filtering child leaks" window shows up (started from IDE: ~15-20 minutes; by launching .EXE ~5 minutes) and then disappears. The IDE actually tells me that it crashes because of an access violation. Stack trace is the following: I really would like to check in the leak detection change so all developer colleagues will get notified and can hunt for those leaks, but it is not really an option if they have to wait 25 minutes after shutting down the application each time. So my questions are... how to get rid of this AV and make the leak collection finish; and how to disable / fasten up child leak detection?
After fixing it the "Filtering child windows" now runs for 40 minutes and counting.
Is there a way to turn this feature off to speed up the leak report?
Code: Select all
function GetLeakReport (limitedToCurrentThread: boolean = true; includeCallstacks: boolean = true; hideChildLeaks: boolean = true) : UnicodeString;
Hope that helps?
Well, if it's not supported it's not supported; I'll give the manual leak report a try.