<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Catching memory leaks</title>
	<atom:link href="http://blog.eurekalog.com/catching-memory-leaks/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.eurekalog.com/catching-memory-leaks/</link>
	<description>A blog about the EurekaLog tool</description>
	<lastBuildDate>Wed, 28 Jul 2010 12:26:19 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Catching memory leaks, redux &#124; EurekaLog Blog</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-8112</link>
		<dc:creator>Catching memory leaks, redux &#124; EurekaLog Blog</dc:creator>
		<pubDate>Tue, 16 Feb 2010 02:09:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-8112</guid>
		<description>[...] I tried to discuss things, that I&#8217;ve missed last time. [...]</description>
		<content:encoded><![CDATA[<p>[...] I tried to discuss things, that I&#8217;ve missed last time. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-6480</link>
		<dc:creator>John</dc:creator>
		<pubDate>Fri, 18 Dec 2009 20:54:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-6480</guid>
		<description>Hello,

I want to thank you so much for a great posting. I have been looking for such information. Currently, memory leak is killing me at my customer sites. I am basically bleeding trying to find the leaks. Our software supposed to run 24/7/365, but little over 3 to 4 months, computer system comes to a crawl and freezes completely which requires system reboot. There were times our customers would call back saying their computer is completely destroyed that they can&#039;t even boot to their windows operating system.

I am currently testing out FastMM494 but none of my changes to Fast4Options.inc file doesn&#039;t seem to do anything. Am I doing anything wrong?</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>I want to thank you so much for a great posting. I have been looking for such information. Currently, memory leak is killing me at my customer sites. I am basically bleeding trying to find the leaks. Our software supposed to run 24/7/365, but little over 3 to 4 months, computer system comes to a crawl and freezes completely which requires system reboot. There were times our customers would call back saying their computer is completely destroyed that they can&#8217;t even boot to their windows operating system.</p>
<p>I am currently testing out FastMM494 but none of my changes to Fast4Options.inc file doesn&#8217;t seem to do anything. Am I doing anything wrong?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexander</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-3552</link>
		<dc:creator>Alexander</dc:creator>
		<pubDate>Sun, 04 Oct 2009 12:39:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-3552</guid>
		<description>You&#039;re welcome ;)</description>
		<content:encoded><![CDATA[<p>You&#8217;re welcome ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lenin</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-3455</link>
		<dc:creator>Lenin</dc:creator>
		<pubDate>Thu, 01 Oct 2009 19:32:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-3455</guid>
		<description>Alexander, 
Thank you very much for your help.
I am going to post that issue as a suggestion to Pierre le Riche. ;)</description>
		<content:encoded><![CDATA[<p>Alexander,<br />
Thank you very much for your help.<br />
I am going to post that issue as a suggestion to Pierre le Riche. ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexander</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-3434</link>
		<dc:creator>Alexander</dc:creator>
		<pubDate>Thu, 01 Oct 2009 05:40:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-3434</guid>
		<description>P.S. Note, that above mentioned scenario can only happen if ALL of the following points holds true:

1. You are using dynamical unload of DLLs (if you unload a DLL - it will be impossible to read its debug information).
2. You are using shared memory manager (if you have 2 standalone memory managers for exe and DLL, then when you unload DLL, its memory manager will detect a leak. But it is not a error to unload DLL with still allocated memory with shared MM).

Break any of the above conditions and you should got nice call stacks again.</description>
		<content:encoded><![CDATA[<p>P.S. Note, that above mentioned scenario can only happen if ALL of the following points holds true:</p>
<p>1. You are using dynamical unload of DLLs (if you unload a DLL &#8211; it will be impossible to read its debug information).<br />
2. You are using shared memory manager (if you have 2 standalone memory managers for exe and DLL, then when you unload DLL, its memory manager will detect a leak. But it is not a error to unload DLL with still allocated memory with shared MM).</p>
<p>Break any of the above conditions and you should got nice call stacks again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexander</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-3432</link>
		<dc:creator>Alexander</dc:creator>
		<pubDate>Thu, 01 Oct 2009 04:11:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-3432</guid>
		<description>Ummm... I think that you&#039;ve missed important point here: 

1. When you allocate memory, FastMM creates call stack, which is array of addresses.
2. Memory leak can be detected as leak ONLY at exit.
3. DLL, where memory was allocated, may be unloaded at the time of application exit.

Put these points together and you&#039;ll see why there is no textual description: it is impossible to get one, as DLL (and it&#039;s debug information) is no longer available, when FastMM creates log file!

I&#039;m not aware of any way of changing it.
May be, you should post this as suggestion to Pierre le Riche?</description>
		<content:encoded><![CDATA[<p>Ummm&#8230; I think that you&#8217;ve missed important point here: </p>
<p>1. When you allocate memory, FastMM creates call stack, which is array of addresses.<br />
2. Memory leak can be detected as leak ONLY at exit.<br />
3. DLL, where memory was allocated, may be unloaded at the time of application exit.</p>
<p>Put these points together and you&#8217;ll see why there is no textual description: it is impossible to get one, as DLL (and it&#8217;s debug information) is no longer available, when FastMM creates log file!</p>
<p>I&#8217;m not aware of any way of changing it.<br />
May be, you should post this as suggestion to Pierre le Riche?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lenin</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-3425</link>
		<dc:creator>Lenin</dc:creator>
		<pubDate>Wed, 30 Sep 2009 20:24:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-3425</guid>
		<description>Hi,

I am using FastMM4 on a Delphi 7 application using RemObjects/DataAbstract sdk. The server application is composed of a main project and a set of DLLs where the services are implemented.

I followed all the configurations instructions to get the complete stack trace. Nevertheless, I have no detailed trace from leaks on DLL code.

To make it simple and better understand the problem, I&#039;m using the demo project “Dynamically Loaded DLL” that comes with FastMM494 download.

First, I set the project compile/link config to get Map files, debug info and so on (for both main/dll project). I also set ReportMemoryLeaksOnShutdown := True on TestApplication.

Build all &gt; Run... and the memory leak shows the following:

****************
--------------------------------2009/9/30 17:12:35--------------------------------
A memory block has been leaked. The size is: 4

This block was allocated by thread 0x7A8, and the stack trace (return addresses) at the time was:
1422963 
1423383 
14236F2 
14233B8 
1481E5B 
1481E2C 
1474F60 
1452738 
145289F 
1474D32 
7E382C75 [Unknown function at DrawFrame]

The block is currently used for an object of class: Unknown

The allocation number is: 900

--------------------------------2009/9/30 17:12:35--------------------------------
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):

1 - 4 bytes: Unknown x 1

**************

So I added a leak (TObject.Create) to the main application- TfAppMain.Button1Click. 

Build All &gt; Run... and now I got the complete stack trace for the main program leak (including line number), but nothing for the DLL leak, as following:

*****************
--------------------------------2009/9/30 17:20:16--------------------------------
A memory block has been leaked. The size is: 4

This block was allocated by thread 0x640, and the stack trace (return addresses) at the time was:
402963 [system.pas][System][@GetMem][2447]
4033A7 [system.pas][System][TObject.NewInstance][8368]
40372E [system.pas][System][@ClassCreate][9027]
4033DC [system.pas][System][TObject.Create][8383]
7E382909 [Unknown function at OpenDesktopA]
4671F8 [ApplicationForm.pas][ApplicationForm][TfAppMain.Button1Click][32]
440930 [Controls.pas][Controls][TControl.Click][4705]
437650 [StdCtrls.pas][StdCtrls][TButton.Click][3472]
4377B7 [StdCtrls.pas][StdCtrls][TButton.CNCommand][3524]
440702 [Controls.pas][Controls][TControl.WndProc][4645]
7E382C75 [Unknown function at DrawFrame]

The block is currently used for an object of class: TObject

The allocation number is: 440

--------------------------------2009/9/30 17:20:16--------------------------------
A memory block has been leaked. The size is: 4

This block was allocated by thread 0x640, and the stack trace (return addresses) at the time was:
1422963 
1423383 
14236F2 
14233B8 
1481E5B 
1481E2C 
1474F60 
1452738 
145289F 
1474D32 
7E382C75 [Unknown function at DrawFrame]

The block is currently used for an object of class: Unknown

The allocation number is: 901

--------------------------------2009/9/30 17:20:16--------------------------------
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):

1 - 4 bytes: TObject x 1, Unknown x 1

*****************

Is there any problem on get FastMM4 stack traces for DLLs code?
Or is there any other configuration that should be done for that?

Sorry for the long message. I really appreciate any help on that issue. 

Thanks in advance.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I am using FastMM4 on a Delphi 7 application using RemObjects/DataAbstract sdk. The server application is composed of a main project and a set of DLLs where the services are implemented.</p>
<p>I followed all the configurations instructions to get the complete stack trace. Nevertheless, I have no detailed trace from leaks on DLL code.</p>
<p>To make it simple and better understand the problem, I&#8217;m using the demo project “Dynamically Loaded DLL” that comes with FastMM494 download.</p>
<p>First, I set the project compile/link config to get Map files, debug info and so on (for both main/dll project). I also set ReportMemoryLeaksOnShutdown := True on TestApplication.</p>
<p>Build all &gt; Run&#8230; and the memory leak shows the following:</p>
<p>****************<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;2009/9/30 17:12:35&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
A memory block has been leaked. The size is: 4</p>
<p>This block was allocated by thread 0&#215;7A8, and the stack trace (return addresses) at the time was:<br />
1422963<br />
1423383<br />
14236F2<br />
14233B8<br />
1481E5B<br />
1481E2C<br />
1474F60<br />
1452738<br />
145289F<br />
1474D32<br />
7E382C75 [Unknown function at DrawFrame]</p>
<p>The block is currently used for an object of class: Unknown</p>
<p>The allocation number is: 900</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;2009/9/30 17:12:35&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):</p>
<p>1 &#8211; 4 bytes: Unknown x 1</p>
<p>**************</p>
<p>So I added a leak (TObject.Create) to the main application- TfAppMain.Button1Click. </p>
<p>Build All &gt; Run&#8230; and now I got the complete stack trace for the main program leak (including line number), but nothing for the DLL leak, as following:</p>
<p>*****************<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;2009/9/30 17:20:16&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
A memory block has been leaked. The size is: 4</p>
<p>This block was allocated by thread 0&#215;640, and the stack trace (return addresses) at the time was:<br />
402963 [system.pas][System][@GetMem][2447]<br />
4033A7 [system.pas][System][TObject.NewInstance][8368]<br />
40372E [system.pas][System][@ClassCreate][9027]<br />
4033DC [system.pas][System][TObject.Create][8383]<br />
7E382909 [Unknown function at OpenDesktopA]<br />
4671F8 [ApplicationForm.pas][ApplicationForm][TfAppMain.Button1Click][32]<br />
440930 [Controls.pas][Controls][TControl.Click][4705]<br />
437650 [StdCtrls.pas][StdCtrls][TButton.Click][3472]<br />
4377B7 [StdCtrls.pas][StdCtrls][TButton.CNCommand][3524]<br />
440702 [Controls.pas][Controls][TControl.WndProc][4645]<br />
7E382C75 [Unknown function at DrawFrame]</p>
<p>The block is currently used for an object of class: TObject</p>
<p>The allocation number is: 440</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;2009/9/30 17:20:16&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
A memory block has been leaked. The size is: 4</p>
<p>This block was allocated by thread 0&#215;640, and the stack trace (return addresses) at the time was:<br />
1422963<br />
1423383<br />
14236F2<br />
14233B8<br />
1481E5B<br />
1481E2C<br />
1474F60<br />
1452738<br />
145289F<br />
1474D32<br />
7E382C75 [Unknown function at DrawFrame]</p>
<p>The block is currently used for an object of class: Unknown</p>
<p>The allocation number is: 901</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;2009/9/30 17:20:16&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer):</p>
<p>1 &#8211; 4 bytes: TObject x 1, Unknown x 1</p>
<p>*****************</p>
<p>Is there any problem on get FastMM4 stack traces for DLLs code?<br />
Or is there any other configuration that should be done for that?</p>
<p>Sorry for the long message. I really appreciate any help on that issue. </p>
<p>Thanks in advance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Delphi &#8211; FastMM: Using FastMM4 for debugging your memory allocations &#8211; part 1: Introduction &#171; The Wiert Corner &#8211; Jeroen Pluimers&#8217; irregular stream of Wiert stuff</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-1899</link>
		<dc:creator>Delphi &#8211; FastMM: Using FastMM4 for debugging your memory allocations &#8211; part 1: Introduction &#171; The Wiert Corner &#8211; Jeroen Pluimers&#8217; irregular stream of Wiert stuff</dc:creator>
		<pubDate>Thu, 13 Aug 2009 08:23:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-1899</guid>
		<description>[...] Top Clicks eksa.wordpress.com/2008/0&#8230;google.nl/search?q=TInter&#8230;stackoverflow.com/questio&#8230;fastmm.sourceforge.netblog.eurekalog.com/?p=198farm3.static.flickr.com/2&#8230;docs.embarcadero.com/prod&#8230;linkedin.com/in/jwpluimer&#8230;docs.embarcadero.com/prod&#8230;forums.devshed.com/delphi&#8230; [...]</description>
		<content:encoded><![CDATA[<p>[...] Top Clicks eksa.wordpress.com/2008/0&hellip;google.nl/search?q=TInter&hellip;stackoverflow.com/questio&hellip;fastmm.sourceforge.netblog.eurekalog.com/?p=198farm3.static.flickr.com/2&hellip;docs.embarcadero.com/prod&hellip;linkedin.com/in/jwpluimer&hellip;docs.embarcadero.com/prod&hellip;forums.devshed.com/delphi&hellip; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ищем утечки памяти - GunSmoker's blog</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-1788</link>
		<dc:creator>Ищем утечки памяти - GunSmoker's blog</dc:creator>
		<pubDate>Sat, 08 Aug 2009 09:32:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-1788</guid>
		<description>&lt;strong&gt;Ищем утечки памяти...&lt;/strong&gt;

Прежде чем приступить к продолжению описания других способов ловли &quot;плохих&quot; указателей, я хотел бы поговорить об утечках памяти и о меха...</description>
		<content:encoded><![CDATA[<p><strong>Ищем утечки памяти&#8230;</strong></p>
<p>Прежде чем приступить к продолжению описания других способов ловли &#8220;плохих&#8221; указателей, я хотел бы поговорить об утечках памяти и о меха&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: How to read bug-reports post &#124; EurekaLog Blog</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-1441</link>
		<dc:creator>How to read bug-reports post &#124; EurekaLog Blog</dc:creator>
		<pubDate>Tue, 28 Jul 2009 05:40:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-1441</guid>
		<description>[...] we always have the exact address for exception), but rather talk about memory problems here (both leaks and corruption). It is quite obvious, that memory manager (I talk about EurekaLog, FastMM or any [...]</description>
		<content:encoded><![CDATA[<p>[...] we always have the exact address for exception), but rather talk about memory problems here (both leaks and corruption). It is quite obvious, that memory manager (I talk about EurekaLog, FastMM or any [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexander</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-1353</link>
		<dc:creator>Alexander</dc:creator>
		<pubDate>Sun, 26 Jul 2009 09:35:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-1353</guid>
		<description>BTW, if you prefer to &quot;see and feel&quot; instead of boring reading, you can take a look at this CodeRage 2 session: &quot;Fighting Memory Leaks for Dummies&quot; by François Gaillard here: http://video.codegear.com/CodeRageIIArchives/Day4/FrancoisGaillard_MemoryLeaks_English.zip</description>
		<content:encoded><![CDATA[<p>BTW, if you prefer to &#8220;see and feel&#8221; instead of boring reading, you can take a look at this CodeRage 2 session: &#8220;Fighting Memory Leaks for Dummies&#8221; by François Gaillard here: <a href="http://video.codegear.com/CodeRageIIArchives/Day4/FrancoisGaillard_MemoryLeaks_English.zip" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/video.codegear.com/CodeRageIIArchives/Day4/FrancoisGaillard_MemoryLeaks_English.zip?referer=');">http://video.codegear.com/CodeRageIIArchives/Day4/FrancoisGaillard_MemoryLeaks_English.zip</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brett Graffin</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-131</link>
		<dc:creator>Brett Graffin</dc:creator>
		<pubDate>Tue, 26 May 2009 23:33:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-131</guid>
		<description>What a great article. Useful information that I will put to work. EurekaLog has definately saved my butt in the past.  Great to see new stuff that can help. Thanks for taking the time to write this article.  And &quot;Newbie&quot;, that one just killed me, I&#039;m still laughing.  I was that guy who used Task Manager to look for memory leaks back in the beginning.  It hurt to read it, but damn it was the truth.</description>
		<content:encoded><![CDATA[<p>What a great article. Useful information that I will put to work. EurekaLog has definately saved my butt in the past.  Great to see new stuff that can help. Thanks for taking the time to write this article.  And &#8220;Newbie&#8221;, that one just killed me, I&#8217;m still laughing.  I was that guy who used Task Manager to look for memory leaks back in the beginning.  It hurt to read it, but damn it was the truth.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernardo Porto</title>
		<link>http://blog.eurekalog.com/catching-memory-leaks/comment-page-1/#comment-130</link>
		<dc:creator>Bernardo Porto</dc:creator>
		<pubDate>Tue, 26 May 2009 22:00:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.eurekalog.com/?p=198#comment-130</guid>
		<description>Excellent post and software!

Congrulations!</description>
		<content:encoded><![CDATA[<p>Excellent post and software!</p>
<p>Congrulations!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
