On 06/16/2017 11:43 AM, Wolf via Lazarus wrote:
If I understand you correctly, because
2. since ParamStr() is handled by the system unit, a call to halt will
result in a memory leak because Heaptrc is not aware of this allocation.
Only the initialization of the system-unit is done before the
heap-manager is in place. So this is no issue.
The memory being allocated for the commandline and it's parameters
itself is system-specific. If there is any memory allocated at all.
If this is correct, then the conclusion has to be that Heaptrc cannot be
trusted as a debugging tool because it is ill-informed about what the
system unit is up to.
Heaptrace is a great debugging-tool. Debugging-tools give you more
information to help you find problems. But they can never be trusted.
The same holds for any debugger, btw.
The part about the system-unit is incorrect. (See above)
Calling Halt(), is, well... dangerous. On the other hand you should not
care about memory-leaks on application exit. But I can imagine that it
obfuscates things when you are searching for real memory-leaks.
Try to place your code in a 'try .. finally' block, and call Halt()
thereafter. Of even better, in a procedure, and halt after the
procedure-call. You have probably problems with implicit try-finally
sections, as Mattias pointed out. You can also investigate this by
looking at the created assembly. (fpc -an)
Regards,
Joost.
wolf (rather disillusioned)
On 16/06/17 20:47, Mattias Gaertner via Lazarus wrote:
On Fri, 16 Jun 2017 20:36:54 +1200
Wolf via Lazarus <[email protected]> wrote:
Now I am nicely confused: If halt does call finalization sections, isn't
then all heap space requested by the system unit supposed to be freed as
well?
The system unit is special. It is loaded even before the heap manager
is initialized. Heaptrc does not report memory of the system unit.
Heaptrc reports allocations after its initialization, which is
usually right after the system unit.
Mattias
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus-ide.org/listinfo/lazarus