Hi,

I'm busy implementing and correcting Application.CreateForm() in fpGUI. Everything looked and worked fine until I enabled 'heaptrc' to see if I have memory leaks.

Normally I just look at the output, randomly picking a method listed by heaptrc output and go through the code slowly. 9 out of 10 times I spot the problem and fix it.

Today I've been sitting for 4 hours trying to find the problem and I'm still not the wiser! Is there a 'correct' process to follow and debug Free Pascal applications. Something like a system or steps to follow, to get to the problem area. Is there a website or book that covers debugging Object Pascal (or just Pascal) applications?

Any help, references or links would be greatly appreciated at this time. BTW: When I run my test application via GDB I get only 3 lines of output which simply reference the Destroy() method, nothing more. :-(


-------------------------
Heap dump by heaptrc unit
1190 memory blocks allocated : 116862/118456
1181 memory blocks freed     : 115895/117472
9 unfreed memory blocks : 967
True heap size : 327680
True free heap : 326080
Should be : 326192
Call trace for block $B7BCC678 size 12
  $08056AD2
$0807FCC0 TFPGAPPLICATION__GETFONT, line 846 of /home/graemeg/programming/fpGUI/src/corelib/fpgfx.pas $0807F6BD FPGGETFONT, line 754 of /home/graemeg/programming/fpGUI/src/corelib/fpgfx.pas
  $080C5477  TFPGBUTTON__SETFONTDESC,  line 201 of gui_button.pas
  $080F1807  TTESTFORM__AFTERCREATE,  line 68 of frm_test.pas
  $080AEDBE  TFPGFORM__CREATE,  line 226 of gui_form.pas
  $080F1654  TTESTFORM__CREATE,  line 50 of frm_test.pas
$080A2CC0 TFPGAPPLICATIONBASE__CREATEFORM, line 1899 of /home/graemeg/programming/fpGUI/src/corelib/gfxbase.pas
Call trace for block $B7A9A648 size 120
  $08056AD2
$08082B6B TFPGWINDOW__CREATE, line 1370 of /home/graemeg/programming/fpGUI/src/corelib/fpgfx.pas $080ACF26 TFPGWIDGET__CREATE, line 261 of /home/graemeg/programming/fpGUI/src/corelib/gfx_widget.pas
  $080C54EF  TFPGBUTTON__CREATE,  line 207 of gui_button.pas
  $080F17AB  TTESTFORM__AFTERCREATE,  line 62 of frm_test.pas
  $080AEDBE  TFPGFORM__CREATE,  line 226 of gui_form.pas
  $080F1654  TTESTFORM__CREATE,  line 50 of frm_test.pas
$080A2CC0 TFPGAPPLICATIONBASE__CREATEFORM, line 1899 of /home/graemeg/programming/fpGUI/src/corelib/gfxbase.pas
Call trace for block $B7BCC628 size 16
  $0805B96B
  $0806A4F7
  $080717A5
$080A06DA TFPGWINDOWBASE__CREATE, line 953 of /home/graemeg/programming/fpGUI/src/corelib/gfxbase.pas
  $080A6D3A  TFPGWINDOWIMPL__CREATE,  line 1594 of gfx_x11.pas
$08082AE1 TFPGWINDOW__CREATE, line 1353 of /home/graemeg/programming/fpGUI/src/corelib/fpgfx.pas $080ACF26 TFPGWIDGET__CREATE, line 261 of /home/graemeg/programming/fpGUI/src/corelib/gfx_widget.pas
  $080C54EF  TFPGBUTTON__CREATE,  line 207 of gui_button.pas
Call trace for block $B7BCC5D8 size 16
  $08056AD2
  $0806B477
  $08070FF3
  $080717A5
$080A06DA TFPGWINDOWBASE__CREATE, line 953 of /home/graemeg/programming/fpGUI/src/corelib/gfxbase.pas
  $080A6D3A  TFPGWINDOWIMPL__CREATE,  line 1594 of gfx_x11.pas
$08082AE1 TFPGWINDOW__CREATE, line 1353 of /home/graemeg/programming/fpGUI/src/corelib/fpgfx.pas $080ACF26 TFPGWIDGET__CREATE, line 261 of /home/graemeg/programming/fpGUI/src/corelib/gfx_widget.pas
Call trace for block $B7BCC588 size 8
  $08056AD2
  $08070FF3
  $080717A5
$080A06DA TFPGWINDOWBASE__CREATE, line 953 of /home/graemeg/programming/fpGUI/src/corelib/gfxbase.pas
  $080A6D3A  TFPGWINDOWIMPL__CREATE,  line 1594 of gfx_x11.pas
$08082AE1 TFPGWINDOW__CREATE, line 1353 of /home/graemeg/programming/fpGUI/src/corelib/fpgfx.pas $080ACF26 TFPGWIDGET__CREATE, line 261 of /home/graemeg/programming/fpGUI/src/corelib/gfx_widget.pas
  $080C54EF  TFPGBUTTON__CREATE,  line 207 of gui_button.pas
Call trace for block $B7A8A348 size 308
  $08056AD2
  $080F17AB  TTESTFORM__AFTERCREATE,  line 62 of frm_test.pas
  $080AEDBE  TFPGFORM__CREATE,  line 226 of gui_form.pas
  $080F1654  TTESTFORM__CREATE,  line 50 of frm_test.pas
$080A2CC0 TFPGAPPLICATIONBASE__CREATEFORM, line 1899 of /home/graemeg/programming/fpGUI/src/corelib/gfxbase.pas
  $080842D7  TMAINFORM__NEWFORMCLICK,  line 49 of frm_main.pas
  $080C5FEB  TFPGBUTTON__CLICK,  line 466 of gui_button.pas
  $080C5DA0  TFPGBUTTON__DORELEASE,  line 385 of gui_button.pas
Call trace for block $B7F5F308 size 19
  $08051C2F
  $080AEDBE  TFPGFORM__CREATE,  line 226 of gui_form.pas
  $080F1654  TTESTFORM__CREATE,  line 50 of frm_test.pas
$080A2CC0 TFPGAPPLICATIONBASE__CREATEFORM, line 1899 of /home/graemeg/programming/fpGUI/src/corelib/gfxbase.pas
  $080842D7  TMAINFORM__NEWFORMCLICK,  line 49 of frm_main.pas
  $080C5FEB  TFPGBUTTON__CLICK,  line 466 of gui_button.pas
  $080C5DA0  TFPGBUTTON__DORELEASE,  line 385 of gui_button.pas
  $080C5F07  TFPGBUTTON__HANDLELMOUSEUP,  line 431 of gui_button.pas
Call trace for block $B7A9A588 size 120
  $08056AD2
$08082B6B TFPGWINDOW__CREATE, line 1370 of /home/graemeg/programming/fpGUI/src/corelib/fpgfx.pas $080ACF26 TFPGWIDGET__CREATE, line 261 of /home/graemeg/programming/fpGUI/src/corelib/gfx_widget.pas
  $080AED2F  TFPGFORM__CREATE,  line 214 of gui_form.pas
  $080F1654  TTESTFORM__CREATE,  line 50 of frm_test.pas
$080A2CC0 TFPGAPPLICATIONBASE__CREATEFORM, line 1899 of /home/graemeg/programming/fpGUI/src/corelib/gfxbase.pas
  $080842D7  TMAINFORM__NEWFORMCLICK,  line 49 of frm_main.pas
  $080C5FEB  TFPGBUTTON__CLICK,  line 466 of gui_button.pas
Call trace for block $B7A921E8 size 348
  $08056AD2
$080A2CC0 TFPGAPPLICATIONBASE__CREATEFORM, line 1899 of /home/graemeg/programming/fpGUI/src/corelib/gfxbase.pas
  $080842D7  TMAINFORM__NEWFORMCLICK,  line 49 of frm_main.pas
  $080C5FEB  TFPGBUTTON__CLICK,  line 466 of gui_button.pas
  $080C5DA0  TFPGBUTTON__DORELEASE,  line 385 of gui_button.pas
  $080C5F07  TFPGBUTTON__HANDLELMOUSEUP,  line 431 of gui_button.pas
$080AD58B TFPGWIDGET__MSGMOUSEUP, line 445 of /home/graemeg/programming/fpGUI/src/corelib/gfx_widget.pas
  $08056E79
-------------------------


Regards,
  - Graeme -


_______________________________________________________
fpGUI - a cross-platform GUI toolkit using Free Pascal
http://opensoft.homeip.net/fpgui/


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to