Hello,
Just create a project like this:
program project1;
{$mode objfpc}{$H+}
uses heaptrc;
begin
end.Now, compile and try to run that, you will get this error:
Heap dump by heaptrc unit
0 memory blocks allocated : 0/0
0 memory blocks freed : 0/0
0 unfreed memory blocks : 0
True heap size : 131072 (1856 used in System startup) True free heap : 129216
An unhandled exception occurred at $770E8E19:
EAccessViolation: Access violation
$770E8E19
$770E8D28
$0040A8C9
$0040A456
$00413BC2
Why an access violation in an empty project, is it a heaptrc bug?
Now, if you compile and run this project below with -gh:
program project1;
{$mode objfpc}{$H+}
begin
end.You will get:
Heap dump by heaptrc unit
47 memory blocks allocated : 1173/1280
47 memory blocks freed : 1173/1280
0 unfreed memory blocks : 0
True heap size : 163840 (112 used in System startup) True free heap : 163728
What means "112 used in System startup"? I have a project that in some cases I get:
Heap dump by heaptrc unit
90 memory blocks allocated : 2827/3072
90 memory blocks freed : 2827/3072
0 unfreed memory blocks : 0
True heap size : 196608
True free heap : 196480
Should be : 196608
So it seems that the "Should be : 196608" in this case is related to the 128 used in the system startup, because when I comment all the code in this project I get "128 used in System startup".
