FastMM in Delphi 2010 - memory leak

Is there a way to get a memory leak report with FastMM either with the embeded version or the standalone that gives you the line number where the memory leak occur like Memcheck does.

Thanks in advance.
0
Ronaldo
10/13/2009 9:19:28 PM
embarcadero.delphi.tools 5366 articles. 2 followers. Follow

12 Replies
873 Views

Similar Articles

[PageSpeed] 15

Ronaldo Santana wrote:

> Is there a way to get a memory leak report with FastMM either with
> the embeded version or the standalone that gives you the line number
> where the memory leak occur like Memcheck does.
> 
> Thanks in advance.

I use this as default in my applications:

   ReportMemoryLeaksOnShutdown:= DebugHook <> 0;



Cesar Romero
0
Cesar
10/13/2009 9:37:38 PM
Hi Cesar,

Thanks for the post.
Did you got the report in a .txt file only by doing that?
Because the maximum I get is an almost empty dialog telling me there is a leak - I am actually forcing the leak to test memory leak reports for the real project - but did not tell me what or where.
I have been through the docs of the stand alone version, have tried it with changing the various parameter but with no success.

Any idea?
0
Ronaldo
10/14/2009 12:54:17 AM
Ronaldo Santana wrote:

> Thanks for the post.
> Did you got the report in a .txt file only by doing that?
> Because the maximum I get is an almost empty dialog telling me there
> is a leak - I am actually forcing the leak to test memory leak
> reports for the real project - but did not tell me what or where.  I
> have been through the docs of the stand alone version, have tried it
> with changing the various parameter but with no success.

For detailed text file you need Full FastMM with FullDebugMode On, you
cant do that with the built in version.
I use FastMM4 only for debug purposes, not for release version.


Cesar Romero
0
Cesar
10/14/2009 12:56:25 AM
> {quote:title=Cesar Romero wrote:}{quote}
> Ronaldo Santana wrote:
> 
> > Thanks for the post.
> > Did you got the report in a .txt file only by doing that?
> > Because the maximum I get is an almost empty dialog telling me there
> > is a leak - I am actually forcing the leak to test memory leak
> > reports for the real project - but did not tell me what or where.  I
> > have been through the docs of the stand alone version, have tried it
> > with changing the various parameter but with no success.
> 
> For detailed text file you need Full FastMM with FullDebugMode On, you
> cant do that with the built in version.
> I use FastMM4 only for debug purposes, not for release version.
> 
> 
> Cesar Romero



Will play with this option and get back with the results.

Thanks.
0
Ronaldo
10/14/2009 1:11:48 AM
> {quote:title=Cesar Romero wrote:}{quote}
> Ronaldo Santana wrote:
> 
> > Thanks for the post.
> > Did you got the report in a .txt file only by doing that?
> > Because the maximum I get is an almost empty dialog telling me there
> > is a leak - I am actually forcing the leak to test memory leak
> > reports for the real project - but did not tell me what or where.  I
> > have been through the docs of the stand alone version, have tried it
> > with changing the various parameter but with no success.
> 
> For detailed text file you need Full FastMM with FullDebugMode On, you
> cant do that with the built in version.
> I use FastMM4 only for debug purposes, not for release version.
> 
> 
> Cesar Romero


Hi there,

Here is the report, as per using FastMM4 with full debug - as you can see, no clue for code line where the memory leak occurs.

--------------------------------2009/10/14 14:45:06--------------------------------
A memory block has been leaked. The size is: 4

Stack trace of when this block was allocated (return addresses):
402A38 
403483 
40381E 
4034B8 
7E432C3C [Unknown function at DrawFrame]
403687 
452B80 
43321E 
42B971 

The block is currently used for an object of class: TObject

The allocation number is: 449

Current memory dump of 256 bytes starting at pointer address E05E88:
EC 10 40 00 B8 5A D0 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ì  .  @  .  ¸  Z  Ð  ~  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .

--------------------------------2009/10/14 14:45:06--------------------------------
This application has leaked memory. The small block leaks are:

1 - 4 bytes: TObject x 1

Note: This memory leak check is only performed if Delphi is currently running on the same computer. Memory leak detail is logged to a text file in the same folder as this application. To disable this memory leak check, undefine "EnableMemoryLeakReporting".
0
Ronaldo
10/14/2009 1:52:45 AM
> {quote:title=Ronaldo Santana wrote:}{quote}
> > {quote:title=Cesar Romero wrote:}{quote}
> > Ronaldo Santana wrote:
> > 
> > > Thanks for the post.
> > > Did you got the report in a .txt file only by doing that?
> > > Because the maximum I get is an almost empty dialog telling me there
> > > is a leak - I am actually forcing the leak to test memory leak
> > > reports for the real project - but did not tell me what or where.  I
> > > have been through the docs of the stand alone version, have tried it
> > > with changing the various parameter but with no success.
> > 
> > For detailed text file you need Full FastMM with FullDebugMode On, you
> > cant do that with the built in version.
> > I use FastMM4 only for debug purposes, not for release version.
> > 
> > 
> > Cesar Romero
> 
> 
> Hi there,
> 
> Here is the report, as per using FastMM4 with full debug - as you can see, no clue for code line where the memory leak occurs.
> 
> --------------------------------2009/10/14 14:45:06--------------------------------
> A memory block has been leaked. The size is: 4
> 
> Stack trace of when this block was allocated (return addresses):
> 402A38 
> 403483 
> 40381E 
> 4034B8 
> 7E432C3C [Unknown function at DrawFrame]
> 403687 
> 452B80 
> 43321E 
> 42B971 
> 
> The block is currently used for an object of class: TObject
> 
> The allocation number is: 449
> 
> Current memory dump of 256 bytes starting at pointer address E05E88:
> EC 10 40 00 B8 5A D0 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> ì  .  @  .  ¸  Z  Ð  ~  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
> .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
> .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
> .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
> .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
> .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
> .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
> .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
> 
> --------------------------------2009/10/14 14:45:06--------------------------------
> This application has leaked memory. The small block leaks are:
> 
> 1 - 4 bytes: TObject x 1
> 
> Note: This memory leak check is only performed if Delphi is currently running on the same computer. Memory leak detail is logged to a text file in the same folder as this application. To disable this memory leak check, undefine "EnableMemoryLeakReporting".

You can get a more helpful stack trace if you build with the "detailed map file" option and add the JCL's stack tracing functionality to your app.  Then you'll see exactly where this object is being created.
0
Mason
10/14/2009 3:05:34 AM
Ronaldo Santana wrote:

> Hi there,
> 
> Here is the report, as per using FastMM4 with full debug - as you can
> see, no clue for code line where the memory leak occurs.

Use the JCL with FastMM and those Call Stack Addresses will turn into
readable call stack with method names.

-- 
Robert Love
Work: rlove@utah.gov
Home: rlove@peakbiz.com
0
Robert
10/14/2009 3:39:12 AM
> Use the JCL with FastMM and those Call Stack Addresses will turn into
> readable call stack with method names.
>

Hello, how one actually can enable that Stack trace stuff in JCL?

Sounds very promising, but are there any (detailed) documentation in 
somewhere...

-TP-
0
Tommi
10/14/2009 4:48:42 AM
Tommi Prami wrote:

> > Use the JCL with FastMM and those Call Stack Addresses will turn
> > into readable call stack with method names.
> > 
> 
> Hello, how one actually can enable that Stack trace stuff in JCL?
> 
> Sounds very promising, but are there any (detailed) documentation in 
> somewhere...

http://blog.gurock.com/postings/working-with-delphis-new-exception-stacktrace/730/

Cesar Romero
0
Cesar
10/14/2009 12:57:06 PM
> {quote:title=Cesar Romero wrote:}{quote}
> Tommi Prami wrote:
> 
> > > Use the JCL with FastMM and those Call Stack Addresses will turn
> > > into readable call stack with method names.
> > > 
> > 
> > Hello, how one actually can enable that Stack trace stuff in JCL?
> > 
> > Sounds very promising, but are there any (detailed) documentation in 
> > somewhere...
> 
> http://blog.gurock.com/postings/working-with-delphis-new-exception-stacktrace/730/
> 
> Cesar Romero


I think I am missing something here.
Although is better, it does not get the line or unit.
I am following all the doc on FastMM Q&A file:

+italics+"Q: When a memory error pops up in "FullDebugMode" there is no debug info in the stack traces, only addresses. Why?
A: For the FastMM_FullDebugMode.dll library to determine unit/line number information for stack traces any one of the following has to be available: TD32 debug info, a .map file, a .jdbg file or embedded JCL debug info. If none of these are available you will only get addresses in stack traces. For line numbers to be shown you also need to enable "Debug Information", "Reference Info" and "Use Debug DCUs". Also, if the addresses are inside a dynamically loaded DLL that was unloaded before shutdown then Fas
tMM will not be able to determine unit/line number info for them."+italics+

And here is my result report:
--------------------------------2009/10/15 10:19:24--------------------------------
A memory block has been leaked. The size is: 76

Stack trace of when this block was allocated (return addresses):
4041DE [System.pas][System][System.@GetMem][2979]
404DAB [System.pas][System][System.TObject.NewInstance][9433]
405342 [System.pas][System][System.@ClassCreate][10277]
436496 [Classes.pas][Classes][Classes.TStringList.Create][5787]
405033 [System.pas][System][System.@IsClass][9738]
4B3654 [DemoForm.pas][DemoForm][DemoForm.TForm1.Button1Click][34]
483595 [Controls.pas][Controls][Controls.TControl.Click][7178]
45F4E3 [StdCtrls.pas][StdCtrls][StdCtrls.TCustomButton.Click][4529]
45FF49 [StdCtrls.pas][StdCtrls][StdCtrls.TCustomButton.CNCommand][4966]

The block is currently used for an object of class: Unknown

The allocation number is: 710

Current memory dump of 256 bytes starting at pointer address F9CA18:
6C A6 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 41 45 99 9F 00 00 00 00 31 C8 F9 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 CC 02 00 00 DE 41 40 00 1F 32 41 00 2D 32 41 00 89 96 48 00 27 30 48 00
27 30 48 00 ED 78 48 00 94 04 D7 77 FF 87 D4 77 FA 41 40 00 76 32 41 00 9D 05 48 00 C9 4D 40 00
8D 53 40 00 45 3B 43 00 77 4D 48 00 FD FD 45 00 27 4D 48 00 4C 00 00 00 4C 00 00 00 98 5F ED F4
F8 0D D3 00 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
l  ¦  B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  A  E  ™  Ÿ  .  .  .  .  1  È  ù  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  Ì  .  .  .  Þ  A  @  .  .  2  A  .  -  2  A  .  ‰  –  H  .  '  0  H  .
'  0  H  .  í  x  H  .  ”  .  ×  w  ÿ  ‡  Ô  w  ú  A  @  .  v  2  A  .    .  H  .  É  M  @  .
  S  @  .  E  ;  C  .  w  M  H  .  ý  ý  E  .  '  M  H  .  L  .  .  .  L  .  .  .  ˜  _  í  ô
ø  .  Ó  .  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €
€  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €

--------------------------------2009/10/15 10:19:24--------------------------------
This application has leaked memory. The small block leaks are:

61 - 76 bytes: Unknown x 1

Note: This memory leak check is only performed if Delphi is currently running on the same computer. Memory leak detail is logged to a text file in the same folder as this application. To disable this memory leak check, undefine "EnableMemoryLeakReporting".


Notice I am leaking a TStringlist and it says unknown type ?????
0
Ronaldo
10/14/2009 9:56:10 PM
I am answering to myself but since I found the problem - which was my problem for not completely understand what I need to do,, now this is it.


--------------------------------2009/10/15 11:08:07--------------------------------
A memory block has been leaked. The size is: 84

This block was allocated by thread 0x128, and the stack trace (return addresses) at the time was:
4041DE [System][System.@GetMem]
404DAB [System][System.TObject.NewInstance]
405342 [System][System.@ClassCreate]
436496 [Classes][Classes.TStringList.Create]
405033 [System][System.@IsClass]
4B3654 [DemoForm.pas][DemoForm][DemoForm.TForm1.Button1Click][34]
483595 [Controls][Controls.TControl.Click]
45F4E3 [StdCtrls][StdCtrls.TCustomButton.Click]
45FF49 [StdCtrls][StdCtrls.TCustomButton.CNCommand]
483027 [Controls][Controls.TControl.WndProc]
77D591FF [Unknown function at DrawFrame]

The block is currently used for an object of class: TStringList

The allocation number is: 811

Current memory dump of 256 bytes starting at pointer address 7FF778A0:
6C A6 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 E3 56 1A A7 80 80 80 80 80 80 80 80 00 00 00 00 61 76 F7 7F
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 03 00 00 DE 41 40 00 1F 32 41 00 2D 32 41 00
89 96 48 00 27 30 48 00 27 30 48 00 ED 78 48 00 94 04 D7 77 FF 87 D4 77 32 07 91 7C 73 B3 D4 77
28 01 00 00 FA 41 40 00 76 32 41 00 9D 05 48 00 C9 4D 40 00 8D 53 40 00 45 3B 43 00 77 4D 48 00
FD FD 45 00 27 4D 48 00 A1 5E 4A 00 9A 6C 4A 00 28 01 00 00 4C 00 00 00 4C 00 00 00 BD 96 E5 68
60 62 D4 00 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
l  ¦  B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  ã  V  .  §  €  €  €  €  €  €  €  €  .  .  .  .  a  v  ÷  
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  1  .  .  .  Þ  A  @  .  .  2  A  .  -  2  A  .
‰  –  H  .  '  0  H  .  '  0  H  .  í  x  H  .  ”  .  ×  w  ÿ  ‡  Ô  w  2  .  ‘  |  s  ³  Ô  w
(  .  .  .  ú  A  @  .  v  2  A  .    .  H  .  É  M  @  .    S  @  .  E  ;  C  .  w  M  H  .
ý  ý  E  .  '  M  H  .  ¡  ^  J  .  š  l  J  .  (  .  .  .  L  .  .  .  L  .  .  .  ½  –  å  h
`  b  Ô  .  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €  €

--------------------------------2009/10/15 11:08:07--------------------------------
This application has leaked memory. The small block leaks are:

69 - 84 bytes: TStringList x 1



As you can see, I can know check the object type, and as per this line: 
4B3654 [DemoForm.pas][DemoForm][DemoForm.TForm1.Button1Click][34]
I know the unit and line causing the leak.

I was misunderstanding what needs to be done.
One you change the delphi otpion to enable TD32 (enabled or disabled I got the same result) and the project options as per FastMM Q&A, you need to compile the BorlandMM.dll project and place it under the project folder or even replace the borland one - since this is the configuration you want - in my case, no dialog box, only the .TXT file with the report once the application is closed.

After that, I got the report I want.

Only one more question: in the line "his block was allocated by thread 0x128, and the stack trace..." the Thread address reffer to what thread? The VCL itself?

Thanks.
0
Ronaldo
10/14/2009 10:22:06 PM
Back to tests I notice a problem.
I am leaking two objects on the same and getting this:


--------------------------------2009/10/15 11:44:28--------------------------------
A memory block has been leaked. The size is: 12

This block was allocated by thread 0x128, and the stack trace (return addresses) at the time was:
404216 [System][System.@GetMem]
404DE3 [System][System.TObject.Free]
405362 [System][System.@AfterConstruction]
404E18 [System][System.TObject.InitInstance]
4AA984 [LeakTest][LeakTest.Finalization][67]
47A5D1 [Controls][Controls.TControl.WMMButtonDblClk]
45B997 [StdCtrls][StdCtrls.TCustomButton.SetButtonStyle]
45C3FD [Printers][Printers..EPrinter]
47A063 [Controls][Controls.DoWriteExplicit]
77D591FF [Unknown function at DrawFrame]
77D578BE [Unknown function at IsCharAlphaA]

The block is currently used for an object of class: TObject

The allocation number is: 990

Current memory dump of 256 bytes starting at pointer address 7FF777C0:
94 14 40 00 00 00 00 00 B8 82 37 8A 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
”  .  @  .  .  .  .  .  ¸  ‚  7  Š  €  €  €  €  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .

--------------------------------2009/10/15 11:44:28--------------------------------
A memory block has been leaked. The size is: 84

This block was allocated by thread 0x128, and the stack trace (return addresses) at the time was:
404216 [System][System.@GetMem]
404DE3 [System][System.TObject.Free]
405362 [System][System.@AfterConstruction]
432A6E [Classes][Classes.TStream.Seek]
40506B [System][System.FindDynaMethod]
4AA978 [LeakTest][LeakTest.Finalization][67]
47A5D1 [Controls][Controls.TControl.WMMButtonDblClk]
45B997 [StdCtrls][StdCtrls.TCustomButton.SetButtonStyle]
45C3FD [Printers][Printers..EPrinter]
47A063 [Controls][Controls.DoWriteExplicit]
77D591FF [Unknown function at DrawFrame]

The block is currently used for an object of class: TStringList

The allocation number is: 989

Current memory dump of 256 bytes starting at pointer address 7FF7EBD0:
7C 6C 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 4C 4B DC 01 80 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|  l  B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  L  K  Ü  .  €  €  €  €  €  €  €  €  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
..  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .

--------------------------------2009/10/15 11:44:28--------------------------------
This application has leaked memory. The small block leaks are:

5 - 12 bytes: TObject x 1
69 - 84 bytes: TStringList x 1



Now I don't even have a finalization section on the unit.
This is happening trying my configurations with the demo from Embarcadero.
0
Ronaldo
10/14/2009 10:52:23 PM
Reply:

Similar Artilces:

from delphi 6 to delphi 2010
Hi. It is possible, with component RX, dxforumlibrary, InfoPower3000Pro, StringAlignGrid. Accepts communication BDE. Thank by comments. excequiel arostica wrote: >Hi. > It is possible, with component RX, dxforumlibrary, >InfoPower3000Pro, StringAlignGrid. Accepts communication BDE. > >Thank by comments. Rx is dead and sources are taken over by jcl/jvcl. I dont know about the rest of the components and i have no experiences with bde over the last 9 years. excequiel arostica wrote: > Hi. > It is possible, with component RX, dxforumlibrary,...

Delphi XE / Delphi 2010
Hello! I noticed that Embarcadero® Delphi® 2010 Version is not on the list of products on Embarcadero page. Or is it still possible to buy it? Will RAD Studio XE compile programs written in Delphi 2010 without problems.? Thanks. Am 13.09.2010 09:04, schrieb Petra Nemec: > Will RAD Studio XE compile programs written in Delphi 2010 without problems.? As always you will probably have to recreate the projects as the import is still a bit -- special. Christian Hello! Does anybody know if it is still possible to get a Delphi2010 trial version (if yes where)? ...

Price of upgrade from Delphi 2010 Professional to Delphi 2010 Enterprise?
It's weird, but I could not find the answer on so simple question not in Embarcadero Shop, neither by the forum search. For example, the shop info about Enterprise upgrade says: The Upgrade product is available to registered owners of 2006-2009 versions, blah-blah... So, if I'm Delphi 2010 Professional user, I even not eligible for upgrade? I have to buy a new version of Enterprise??? But if I'm Delphi 2006 Professional user, I can upgrade. Please clarify this nonsense for me. Exact question is in the subject. Thanks! Hi Dmitri, > It's weird, but I could not...

Migrate from Delphi 2007 to Delphi 2010
Hi All, Thanks in advance for your help. Below is my query, Currently I am using Delphi 2007 and i want to migrate to Delphi 2010. 1. What all things i need to take care while doing this? 2. What all third party components will get impacted? 3. Any known issues in Delphi 2010 which might impact the cause? 4. Any changes in database operation required as i am using Oracle? Hope I have post this query under correct category. If not sorry for the trouble and could you please suggest me the correct category for this? Looking forward for your response. Have a great day. Th...

Using Delphi 7 and Delphi 2010
I had a project in Delphi 7. I worked on it in Delphi 2010. When I try to open the .dpr again in Delphi 7, the IDE toolbar widens across both monitors, and Delphi 7 locks up. It appears that Delphi 2010 modifies the .dpr in a way that makes Delphi 7 unable to open it again. All my forms & units appear to open fine in D7 after D2010, except for the warnings on the ExplicitHeight and ExplicitWidth properties being missing... I can easily recreate the .dpr, but is this expected behavior? Thanks. Tom Field wrote: > I had a project in Delphi 7. > > I worked o...

Migrating From Delphi 7 to Delphi 2010
We did not know which forum was the best for this question. We have been wanting to migrate from Delphi 7 to a later version for years but it appears to be a daunting task. We first looked at D2006 and that was a radical new world. We bought D2010 a couple of years ago and not done much with it because there are so many parts to our applications. We have done a few new applications in D2010 and they seem to work okay. D2010 has not been impressive, perhaps because of the strangeness compared to D7. Is is possible for us to do a phased sort of migration where we do a form at a time? ...

delphi 2006 code in delphi 2010
hello, is there any option to make delphi 2006 code work in delphi 2010? something like in java IDEs where you can define the code level you like to use? the problem is, that i made a project with 2006 and sent it to my customer. they got 2010 and it compiles fine, but it just doesn't work. it deals with en-/decryption of text, we assumed, that it has something to do with ansi vs. unicode strings... but we cant find the exact position where the error occurs. i am a bit dissapointed, because everywhere i read that the new IDE will always be downwards compatible and so on.. but in ...

Delphi 2010 w Delphi 2007
I have D2007 installed on my laptop (XP sp3 running on dual core Athlon). Can I install D2010 on this machine without it affecting D2007? Will D2010 affect D2007 in any way? Thanks, Randall Carpenter > {quote:title=Randall Carpenter wrote:}{quote} > I have D2007 installed on my laptop (XP sp3 running on dual core Athlon). > Can I install D2010 on this machine without it affecting D2007? Will D2010 > affect D2007 in any way? Won't hurt a thing. I have D7, RAD Studio 2007, RAD Studio 2009, and RAD Studio 2010 all on my desktop system and they coexist fine. Jus...

Delphi 2010 professional to Delphi XE3
Hello, Sorry for this is not right place to ask this question: I have Delphi 2010 professional version, I like to upgrade to Delphi XE3 Am eligible to upgrade or no not? I like answer from Delphi sales team. I couldn’t find email to ask them. Thanks Mike Thomas <> wrote in news:506459@forums.embarcadero.com: > Hello, > > Sorry for this is not right place to ask this question: > I have Delphi 2010 professional version, I like to upgrade to Delphi > XE3 Am eligible to upgrade or no not? I like answer from Delphi > sales team. I couldn’t find emai...

Free RAD Studio 2010 and Delphi Prism 2011 with purchase of Delphi 2010
Hi All, For those of you who complain that Delphi (and RAD Studio) is too expensive... for a few short weeks there are two overlapping special offers from Embarcadero that you can use to move up to RAD Studio 2010 including the latest Delphi Prism 2011 for the price of a single Delphi 2010 (New User or Upgrade)... The first "RAD Studio PROMO" offer is still valid until June 28th: when you order Delphi 2010, you get RAD Studio 2010 delivered instead (including Delphi 2010, C++Builder 2010 and Delphi Prism 2010). As of May 26th, the "Delphi Prism 2011" of...

Delphi 7 to Delphi 2010
We have decided to move up some applications running under Delphi 7 to Delphi 2010. However, I was surprise to see that simply recompiling the application causes the application to be much slower than version 7. We have a lot of string transformation routines, some mathematical transformations, etc. When I mean slower, I mean up to two times slower than with Delphi 7, so it not a minor difference. (The EXE is also a lot bigger but I don't worry too much about that). Is there something I can do to obtain the same kind of speed I had in Delphi 7 but with Delphi 2010? ...

Delphi 6 and Delphi 2010 Install same machine
I'm currently still on Delphi 6 for some legacy software, but I'm looking at installing Delphi 2010 on my Windows XP machine. Are there any known issues with installing D2010 on an XP machine that already has Delphi 6 installed? (I'm not talking about updating the projects code/controls/etc, just running the IDE's). > I'm currently still on Delphi 6 for some legacy software, but I'm > looking at installing Delphi 2010 on my Windows XP machine. > > Are there any known issues with installing D2010 on an XP machine that > already has Delphi 6 i...

Pchar for PansiChar
hello, I use a DLL developed in D7 and not have the same sources. I will use Delphi 2010 and the functions do not work function TkmInitialize(LOGXMLDIR: PChar; TkmByExt: dWord): dWord; stdcall; external 'trackbuffer.dll'; function TkmCreateStream(FileName: PChar; Var Stream: dWord; Var Error: dWord): PChar; stdcall; external 'trackbuffer.dll'; function TkmLogEnd(Stream: dWord; MediaDuration, MediaPosition, MediaType: dWord; MediaName: PChar): dWord; stdcall; external 'trackbuffer.dll'; function TkmIsTkm(FileName: PChar): Bool; stdcall; external 'trackbuffer.dl...

Delphi 6 to Delphi 2010 upgrade and ADO
We have an application written in Delphi 6 Professional that uses ADO to access databases servers that may be on other PCs in our network. We want to move to Delphi 2010 but can't decide if we need Professional or Enterprise. 2010 Pro has dbGO - will this give us the same functionality as the ADO components we use in Delphi 6 Pro? Thanks, Keith > 2010 Pro has dbGO - will this give us the same functionality as the > ADO components we use in Delphi 6 Pro? Yes. > {quote:title=Joachim Uersfeld wrote:}{quote} > > 2010 Pro has dbGO - will this give us the same func...

Calling Delphi 6 DLL from Delphi 2010
We have a Delphi 6 dll that has a PChar passed to it. The dll function then does a search and returns a PCHar. This works good using Delphi 6 to call and recieve the dll result. We have upgraded our calling program to Delphi 2010 and most of the time, the value is passed back just fine. However, we do have times when we get an access violation, when calling the dll. The dll does process the request. Below is the code. Has anyone had a similar issue using an older version Delphi Dll with Delphi 2010? I am sure that Unicode has something to do with it, but not sure how to fix th...

Web resources about - FastMM in Delphi 2010 - memory leak - embarcadero.delphi.tools

Use the full FastMM! Consider donating!
A few years ago, it would be interesting to ask what memory manager (MM) you are using in your Delphi projects. You had the old-in-the-tooth ...

FastMM's Multicore Performance Scaling
Having used .NET's asynchronous socket, filestream, WinForm's Invoke / BeginInvoke and fell in love with its design and knowing that it uses ...

Mastering Delphi Update for Delphi 2006
... new features in the Win32 Run Time Library (RTL). The most relevant is with no doubt the introduction of a new memory manager, FastMM. This ...

NexusDB FastMM 4 integration - NexusDB
Ptr Record Cna Training Home Shop Products NexusDB Database Engine Nexus Quality Suite NexusDB Connectors Nexus Remoting Nexus Memory Manager ...

FastMM - Slow in multithreaded apps on multicore CPUs
There's something wrong with FastMM4's (i.e. the default memory manager of Delphi / C++ Builder starting BDS2006) usability on multicore systems, ...

Resources last updated: 12/6/2015 11:33:31 PM