Lee Jenkins escreveu:
Michael Van Canneyt wrote:


On Mon, 5 Oct 2009, Lee Jenkins wrote:


Does anyone else have any trouble reading heaptrc output? The only thing that I can see of use is that it tells me there /is/ a leak. However, trying to figure out where it is according to heaptrc output seems more difficult and time consuming that searching through the code.

I'm not criticizing per se, just frustrated that I've spend 40 mins looking at a heaptrc output file with still no clue as to where the leak may be.

Heap dump by heaptrc unit
4669 memory blocks allocated : 1093920/1110888
4621 memory blocks freed     : 1092756/1109608
48 unfreed memory blocks : 1164
True heap size : 360448 (112 used in System startup)
True free heap : 355808
Should be : 356368
Call trace for block $030FFC70 size 45
 $0040734F
$005E9916 TTIOIDGENERATORGUID__ASSIGNNEXTOID, line 489 of M:/lazarus/components/tiOPF2/Core/tiOIDGUID.pas $005CFA38 TTIOBJECT__CREATENEW, line 2036 of M:/lazarus/components/tiOPF2/Core/tiObject.pas $005CFAF5 TTIOBJECT__CREATENEW, line 2042 of M:/lazarus/components/tiOPF2/Core/tiObject.pas $004237AF TFLEXOBJECTMAPPING__REGISTERPROPERTY, line 259 of M:/lazarus/projects/flexserver/src/flex_persistence.pas $00423293 TMAPPINGREADER__REGISTERMAPPINGS, line 128 of M:/lazarus/projects/flexserver/src/flex_mapping_reader.pas $00422EBB TMAPPINGREADER__LOADMAPPINGS, line 66 of M:/lazarus/projects/flexserver/src/flex_mapping_reader.pas
 $00422C86  TFORM1__BUTTON1CLICK,  line 40 of main_form.pas

What is not clear about this ?

In line 489 of M:/lazarus/components/tiOPF2/Core/tiOIDGUID.pas
a memory block of 45 bytes is allocated and never freed.

Michael.

First, thanks for responding so quickly, Michael. Secondly, my apologies as I pasted the wrong output. The above was easy enough to find as I was not freeing an object list that held the offending objects.

The output that I meant to paste is this:

M:\lazarus\projects\flexserver\gui_test\flexserver.exe
Heap dump by heaptrc unit
4669 memory blocks allocated : 1093938/1110912
4651 memory blocks freed     : 1093626/1110576
18 unfreed memory blocks : 312
True heap size : 294912 (112 used in System startup)
True free heap : 293264
Should be : 293456
Call trace for block $03579D08 size 16
  $0040D45B
  $00439AB7
$00422EBB TMAPPINGREADER__LOADMAPPINGS, line 66 of M:/lazarus/projects/flexserver/src/flex_mapping_reader.pas
  $00422C86  TFORM1__BUTTON1CLICK,  line 40 of main_form.pas
  $004C0BB4  TCONTROL__CLICK,  line 2227 of ./include/control.inc
$0050352F TBUTTONCONTROL__CLICK, line 72 of ./include/buttoncontrol.inc
  $005039F5  TCUSTOMBUTTON__CLICK,  line 164 of ./include/buttons.inc
  $00503F51  TBUTTON__CLICK,  line 331 of ./include/buttons.inc
Call trace for block $03579EE8 size 16
  $0040A692
  $0054783A
  $00546A31
$00422EBB TMAPPINGREADER__LOADMAPPINGS, line 66 of M:/lazarus/projects/flexserver/src/flex_mapping_reader.pas
  $00422C86  TFORM1__BUTTON1CLICK,  line 40 of main_form.pas
  $004C0BB4  TCONTROL__CLICK,  line 2227 of ./include/control.inc
$0050352F TBUTTONCONTROL__CLICK, line 72 of ./include/buttoncontrol.inc
  $005039F5  TCUSTOMBUTTON__CLICK,  line 164 of ./include/buttons.inc
Call trace for block $00157D08 size 20
  $0040A692
  $00546A31
$00422EBB TMAPPINGREADER__LOADMAPPINGS, line 66 of M:/lazarus/projects/flexserver/src/flex_mapping_reader.pas
  $00422C86  TFORM1__BUTTON1CLICK,  line 40 of main_form.pas
  $004C0BB4  TCONTROL__CLICK,  line 2227 of ./include/control.inc
$0050352F TBUTTONCONTROL__CLICK, line 72 of ./include/buttoncontrol.inc
  $005039F5  TCUSTOMBUTTON__CLICK,  line 164 of ./include/buttons.inc
  $00503F51  TBUTTON__CLICK,  line 331 of ./include/buttons.inc
Call trace for block $03579DA8 size 16
  $0040D45B
  $00439AB7
$00422EBB TMAPPINGREADER__LOADMAPPINGS, line 66 of M:/lazarus/projects/flexserver/src/flex_mapping_reader.pas
  $00422C86  TFORM1__BUTTON1CLICK,  line 40 of main_form.pas
  $004C0BB4  TCONTROL__CLICK,  line 2227 of ./include/control.inc
$0050352F TBUTTONCONTROL__CLICK, line 72 of ./include/buttoncontrol.inc
  $005039F5  TCUSTOMBUTTON__CLICK,  line 164 of ./include/buttons.inc
  $00503F51  TBUTTON__CLICK,  line 331 of ./include/buttons.inc
Call trace for block $03579D58 size 16
  $0040A692
  $0054783A
  $00546A31
$00422EBB TMAPPINGREADER__LOADMAPPINGS, line 66 of M:/lazarus/projects/flexserver/src/flex_mapping_reader.pas
  $00422C86  TFORM1__BUTTON1CLICK,  line 40 of main_form.pas
  $004C0BB4  TCONTROL__CLICK,  line 2227 of ./include/control.inc
$0050352F TBUTTONCONTROL__CLICK, line 72 of ./include/buttoncontrol.inc
  $005039F5  TCUSTOMBUTTON__CLICK,  line 164 of ./include/buttons.inc
//.. etc, etc.

As you can see, its the same thing, repeatedly and unfortunately, it doesn't make any sense to me where the rest of execution is going. I am using TXMLDocument in the "LoadMappings" method which is the only thing that I can think of (code below).

Maybe its related to this?
http://bugs.freepascal.org/view.php?id=13605

The only thing is that I have updated my lazarus with a latter snapshot but I guess it could be the same thing maybe.

My version is 9.27 rev. 21413 so it looks doubtful that is the problem but I cannot say for sure.

procedure TMappingReader.RegisterMappings;

It should not be LoadMappings method?

Luiz

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to