[DUG] FastMM
Jeremy North
jeremy.north at gmail.com
Wed Mar 3 12:57:51 NZDT 2010
Re: point 5. The browsing path is used when trying to find source code
files. You should put the fastmm units on the library path.
The project manager repeating like that is a bug that is fixed in
later releases. Can't remember the cause. Just remove the entries
manually.
I wrote a GUI frontend to the fastmm Inc file. Search my blog for how
to download. It was a couple of years ago now. I actually updated it a
few months ago but didn't get around to testing it fully.
Out of the office otherwise I'd find the link for you.
Cheers,
Jeremy
Sent from my iPhone
On 03/03/2010, at 7:08 AM, "John Bird" <johnkbird at paradise.net.nz>
wrote:
> I decided to try some memory leak testing on a couple of programs to
> be sure all is OK, and after googling figured that even though I
> have d2007 the best was to download FastMM4 from source forge
>
> This is what I figured to do to run the tests - anyone can correct
> me if I am wrong:
>
> 1 - Add Uses FastMM in ...\Components\FastMM\FastMM4.pas as the
> first used unit in the .DPR file. note I just edited the .DPR file
> manually.
>
> 2 - in the main form create add a line
> ReportMemoryLeaksOnShutdown := true; //#### FastMM
> diagnostics if enabled
>
> 3 - Edit the FastMM4Options.Inc file to set
> get an error on startup.}
> {$define FullDebugMode}
>
> [Note the program is a lot slower with this in]
>
> 4 - Add to Project compile options Debug Dcu's, generate debug
> info, local symbols, reference info, use debug DCU's
> Add to Project link options include TD32 debug info
>
> I know not all of these are needed, but not being sure which I just
> turned them all on.
>
> 5 - I found I had to add to each project search path
> ..\Components\FastMM otherwise it could not find
> FastMM4Messages.pas or FastMM4Messages.dcu
> even though that folder was in the IDE global setting Tools/Options/
> Delphi options/Library - Win32/Browsing Path
>
> All that done, to my relief I got a message that the only leaks
> were one TFileStream, and one AnsiString
>
> "This application has leaked memory. The small block leaks are
> (excluding expected leaks registered by pointer):
>
> 5 - 12 bytes: TFileStream x 1
> 21 - 36 bytes: AnsiString x 1
>
> Note: Memory leak detail is logged to a text file in the same folder
> as this application. To disable this memory leak check, undefine
> "EnableMemoryLeakReporting"."
>
> This program does open and close a lot of files with TFileStream,
> (note I do all my fileopens with a library routine that also saves a
> reference number, the open mode, and the filename, and so far they
> all seem to be closed properly- but I am checking to be sure).
> I haven't yet figured out the culprit, anyone have any hints on how
> to track them down, puzzled at the Ansistring one - what does that
> mean, as I thought strings do not get memory leaks, being reference
> counted. There are certainly way more than one string in the project.
>
> Also I got a garbaged Project file - ended up with lines like:
>
> <DCCReference Include="..\CFastMM.Pas" />
> <DCCReference Include="..\CoFastMM.Pas" />
> <DCCReference Include="..\ComFastMM.Pas" />
> <DCCReference Include="..\CompFastMM.Pas" />
> <DCCReference Include="..\CompoFastMM.Pas" />
> <DCCReference Include="..\ComponeFastMM.Pas" />
> <DCCReference Include="..\ComponeneFastMM.Pas" />
> <DCCReference Include="..\ComponenenFastMM.Pas" />
> <DCCReference Include="..\ComponenentFastMM.Pas" />
> <DCCReference Include="..\ComponenentsFastMM.Pas" />
> <DCCReference Include="..\ComponenFastMM.Pas" />
> <DCCReference Include="..\ComponenntsFastMM.Pas" />
> <DCCReference Include="..\ComponentFastMM.Pas" />
> <DCCReference Include="..\ComponentsFastMM.Pas" />
> <DCCReference Include="..\Components\FaFastMM.Pas" />
> <DCCReference Include="..\Components\FasFastMM.Pas" />
> <DCCReference Include="..\Components\FastFastMM.Pas" />
> <DCCReference Include="..\Components\FastMFastMM.Pas" />
> <DCCReference Include="..\Components\FastMM.Pas" />
> <DCCReference Include="..\Components\FastMMFastMM.Pas" />
> <DCCReference Include="..\Components\FastMM\FastMM.Pas" />
> <DCCReference Include="..\Components\FastMM\FastMM4.Pas" /
> > <==== this is the right one
> <DCCReference Include="..\Components\FFastMM.Pas" />
> <DCCReference Include="..\ComponFastMM.Pas" />
> <DCCReference Include="..\FastMM.Pas" />
>
> Anyone come across this? Is it from anything I did wrong?
>
> John
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with
> Subject: unsubscribe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20100303/8068c876/attachment.html
More information about the Delphi
mailing list