A lowly newbie humbly asks for a clue



Hi everyone, well you all seem such nice experts I was hoping for a starter
clearing up my leaks. I'm hoping help with the first few will show me the
way to deal with the rest myself as there are similar ones in my other apps
;-) I'm running FastMM4 4.70 with D7 Ent. I understand the basics but can't
see why the leak report doesn't point to any of my source files, and I can't
believe all apps behave as mine is. I have the full log at the end of this
message, but basically when I exit the app in the IDE I see a dialog with
this

13 - 20 bytes: TList x 1
21 - 28 bytes: TCriticalSection x 1
45 - 60 bytes: TIWSessions x 1

I do use critical sections in my app, but don't recognise TIWSessions. As I
say, I can't see the line in my source where I've been naughty.
Heres the full log, thanks very much in advance:


--------------------------------2006/8/30
13:30:28--------------------------------
A memory block has been leaked. The size is: 20

Stack trace of when this block was allocated (return addresses):
402ED0 [system.pas][System][@GetMem][2439]
404737 [system.pas][System][TObject.NewInstance][8360]
404B12 [system.pas][System][@ClassCreate][9019]
40476C [system.pas][System][TObject.Create][8375]
7C809FAF [InitializeCriticalSection]
425FB6 [classes.pas][Classes][TThreadList.Create][3092]
425FC2 [classes.pas][Classes][TThreadList.Create][3093]
7A08B9 [IWApplication][initialization]
405337 [system.pas][System][InitUnits][10845]

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

The allocation number is: 1301

Current memory dump of 256 bytes starting at pointer address 2364138:
98 28 42 00 00 00 00 00 00 00 00 00 00 00 00 00 2A B5 BE 83 80 80 80 80 00
00 00 00 E1 41 36 02
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 05 00 00 D0 2E 40 00 37
47 40 00 BD 79 40 00
12 4B 40 00 6C 47 40 00 C2 37 6D 00 37 53 40 00 9F 53 40 00 F3 80 40 00 FB
2E 40 00 55 47 40 00
5D 4B 40 00 8E 47 40 00 24 7A 40 00 2F 79 40 00 89 37 6D 00 C7 52 40 00 A2
55 40 00 14 00 00 00
D8 35 6D 00 96 3A 83 07 80 CC 7E 00 80 80 80 80 80 80 80 80 80 80 80 80 80
80 80 80 69 C5 7C F8
00 00 00 00 69 42 36 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17
05 00 00 D0 2E 40 00
37 47 40 00 12 4B 40 00 DC 04 7A 00 2B 5F 40 00 17 06 7A 00 37 53 40 00 9F
53 40 00 F3 80 40 00
FB 2E 40 00 55 47 40 00 5D 4B 40 00 8E 05 7A 00 9B 47 40 00 18 65 41 00 CD
05 7A 00 C7 52 40 00
~ ( B . . . . . . . . . . . . . * µ ¾ f ? ? ? ? . .
.. . á A 6 .
.. . . . . . . . . . . . . . . . . . . . Ð . @ . 7 G
@ . ½ y @ .
.. K @ . l G @ . Â 7 m . 7 S @ . Y S @ . ó ? @ . û .
@ . U G @ .
] K @ . Z G @ . $ z @ . / y @ . ? 7 m . Ç R @ . ¢ U
@ . . . . .
Ø 5 m . - : f . ? Ì ~ . ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? i Å | ø
.. . . . i B 6 . . . . . . . . . . . . . . . . . . .
.. . Ð . @ .
7 G @ . . K @ . Ü . z . + _ @ . . . z . 7 S @ . Y S
@ . ó ? @ .
û . @ . U G @ . ] K @ . Z . z . > G @ . . e A . Í .
z . Ç R @ .

--------------------------------2006/8/30
13:30:28--------------------------------
A memory block has been leaked. The size is: 60

Stack trace of when this block was allocated (return addresses):
402ED0 [system.pas][System][@GetMem][2439]
404737 [system.pas][System][TObject.NewInstance][8360]
404B12 [system.pas][System][@ClassCreate][9019]
425F9A [classes.pas][Classes][TThreadList.Create][3090]
7A0AB2 [IWControl][TIWJpegOptions.Create]
7A08B9 [IWApplication][initialization]
405337 [system.pas][System][InitUnits][10845]
40539F [system.pas][System][@StartExe][10910]
4080F3 [SysInit.pas][SysInit][@InitExe][668]

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

The allocation number is: 1300

Current memory dump of 256 bytes starting at pointer address 2444AD8:
BC 07 7A 00 38 41 36 02 D0 10 16 00 FF FF FF FF 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A7
02 3A F8 80 80 80 80
00 00 00 00 D1 4B 44 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18
05 00 00 D0 2E 40 00
37 47 40 00 12 4B 40 00 6C 47 40 00 40 47 40 00 12 4B 40 00 FE 04 7A 00 17
06 7A 00 37 53 40 00
FB 2E 40 00 55 47 40 00 5D 4B 40 00 CD 8E 42 00 9B 47 40 00 18 65 41 00 77
05 7A 00 9B 47 40 00
18 65 41 00 30 00 00 00 1C 31 42 00 FE 29 BD 07 80 CC 7E 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
01 D6 42 F8 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 61 3D 44 02 00
00 00 00 00 00 00 00
¼ . z . 8 A 6 . Ð . . . ÿ ÿ ÿ ÿ . . . . . . . . . .
.. . . . . .
.. . . . . . . . . . . . . . . . . . . . . . . . § .
: ø ? ? ? ?
.. . . . Ñ K D . . . . . . . . . . . . . . . . . . .
.. . Ð . @ .
7 G @ . . K @ . l G @ . @ G @ . . K @ . þ . z . . .
z . 7 S @ .
û . @ . U G @ . ] K @ . Í Z B . > G @ . . e A . w .
z . > G @ .
.. e A . 0 . . . . 1 B . þ ) ½ . ? Ì ~ . ? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ?
.. Ö B ø ? ? ? ? ? ? ? ? ? ? ? ? . . . . a = D . . .
.. . . . . .

--------------------------------2006/8/30
13:30:28--------------------------------
A memory block has been leaked. The size is: 28

Stack trace of when this block was allocated (return addresses):
402ED0 [system.pas][System][@GetMem][2439]
404737 [system.pas][System][TObject.NewInstance][8360]
404B12 [system.pas][System][@ClassCreate][9019]
44178E [SyncObjs.pas][SyncObjs][TCriticalSection.Create][194]
405754 [system.pas][System][@LStrAsg][11774]
4053DF [system.pas][System][@InitResStringImports][11121]
5750D6 [IdComponent.pas][IdComponent][initialization][172]
405337 [system.pas][System][InitUnits][10845]
40539F [system.pas][System][@StartExe][10910]

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

The allocation number is: 313

Current memory dump of 256 bytes starting at pointer address 244BC78:
48 17 44 00 10 E7 15 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 15 C7 5D FB
00 00 00 00 51 BE 44 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50
01 00 00 D0 2E 40 00
37 47 40 00 12 4B 40 00 3E 52 43 00 9E 5A 43 00 E1 AC 43 00 DA C1 43 00 6E
53 5C 00 37 53 40 00
FB 2E 40 00 55 47 40 00 5D 4B 40 00 AF 52 43 00 9B 47 40 00 7E 5B 43 00 7C
4B 40 00 33 AD 43 00
9B 47 40 00 1C 00 00 00 44 33 43 00 64 6C 3F 07 80 CC 7E 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 9B 93 C0 F8 00 00 00 00 A1 BC 44 02 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 51 01 00 00 D0 2E 40 00 37 47 40 00 12 4B 40 00 BA
55 43 00 D2 5A 43 00
E1 AC 43 00 DA C1 43 00 6E 53 5C 00 37 53 40 00 FB 2E 40 00 55 47 40 00 5D
4B 40 00 23 56 43 00
H . D . . ç . . ÿ ÿ ÿ ÿ . . . . . . . . . . . . . .
.. . . Ç ] û
.. . . . Q ¾ D . . . . . . . . . . . . . . . . . P .
.. . Ð . @ .
7 G @ . . K @ . > R C . z Z C . á ¬ C . Ú Á C . n S
\ . 7 S @ .
û . @ . U G @ . ] K @ . ¯ R C . > G @ . ~ [ C . | K
@ . 3 ­ C .
G @ . . . . . D 3 C . d l ? . ? Ì ~ . ? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? > " À ø . . . . ¡ ¼ D . . .
.. . . . . .
.. . . . . . . . Q . . . Ð . @ . 7 G @ . . K @ . º U
C . Ò Z C .
á ¬ C . Ú Á C . n S \ . 7 S @ . û . @ . U G @ . ] K
@ . # V C .

--------------------------------2006/8/30
13:30:28--------------------------------
This application has leaked memory. The small block leaks are (excluding
expected leaks registered by pointer):

13 - 20 bytes: TList x 1
21 - 28 bytes: TCriticalSection x 1
45 - 60 bytes: TIWSessions 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".


.



Relevant Pages

  • Re: trying to make my "fillvalues" function work...
    ... void checkPtr_error(const char *location, const void *pointer) ... fprintf(stderr, "Memory allocation failure (%s). ...
    (comp.lang.c)
  • Re: Policy on rebooting?
    ... >> appropriate sizes of the pools statically was impossible. ... The problem is not the use of dynamic memory, ... so that the allocation can be ... If you can guarantee that only one pointer to a particular block is ...
    (comp.arch.embedded)
  • Re: various objects in my VB6 project - Calling IUnknown
    ... memory allocation and deallocation is half ... Doing something like this with a pointer would be a permanent leak in C++. ... Visual C++ has heap checking built ...
    (microsoft.public.vb.general.discussion)
  • Re: Linked List & Dynamic Memory Allocation
    ... you have a memory leak. ... that storage will not be available any longer. ... You must call freefor every pointer you got via malloc. ... There are three serious errors you can make using dynamic allocation: ...
    (microsoft.public.vc.mfc)
  • Re: memory
    ... statement caused a corruption of the free memory pool or allocated ... allocation routines so I could have access to the free memory pool and ... removing your internal copy of the pointer as you do. ... Dig the even newer still, yet more improved, sig! ...
    (comp.lang.c)