Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2007-12

heaptrc: error in linked list of heap_mem_info

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Tom Verhoeff

When I use HeapTrc on a small program (FPC 2.2.0 on Linux; FPC 2.0.4 on Mac OS X) and set

  QuickTrace := False
  KeepReleased := True

this results in a long list of

error in linked list of heap_mem_info
error in linked list of heap_mem_info
...

When either QuickTrace or KeepReleased is kept at its default value, this does not happen.

It also heappens in the heaptrace example program:

Program heapex;

{ Program used to demonstrate the usage of heaptrc unit }

Uses heaptrc;
Var P1 : ^Longint;
    P2 : Pointer;
    I : longint;
begin
  QuickTrace := False; // ADDED
  KeepReleased := True; // ADDED
  SetHeapTraceOutput('heaptrc.out'); // ADDED
  New(P1);
  // causes previous allocation not to be de-allocated
  New(P1);
  Dispose(P1);
  For I:=1 to 10 do
    begin
      GetMem (P2,128);
      // When I is even, deallocate block. We loose 5 times 128
      // bytes this way.
      If (I mod 2) = 0 Then FreeMem(P2,128);
    end;
  GetMem(P2,128);
  // This will provoke an error and a memory dump
  Freemem (P2,64);
end.

Any suggestions? Or is this combination asking for trouble (in which case it would be good to mention this in the documentation)?

Thanks,

Tom

E-MAIL: T.Verhoeff @ TUE.NL | Dept. of Math. & Comp. Science PHONE: +31 40 247 41 25 | Technische Universiteit Eindhoven FAX: +31 40 247 54 04 | PO Box 513, NL-5600 MB Eindhoven http://www.win.tue.nl/~wstomv/ | The Netherlands

Reply by email