[fpc-devel] Heaptrace + cwstring cause SIGSEGV at the end

Sergei Gorelkin sergei_gorelkin at mail.ru
Mon Mar 10 17:17:11 CET 2014


10.03.2014 19:40, Jonas Maebe пишет:
>
> On 10 Mar 2014, at 16:13, Petr Kristan wrote:
>
>> If memoryleak occurs and program ends, then i get SIGSEGV in cwstring.pp:481 (iconv call)
>> because cwstring unit is finalized before heaptrc.
>
>
> If you use -gh, then heaptrc will be the first unit of the uses clause and will be finalized after
> any manually added unit.
>
That's exactly the issue. Being finalized last, heaptrc must not do anything that depends on 
functionality from other units, except system, but it does due to recent Unicode-related changes 
(indirectly, see the stack trace).

Even further, in case of error RTL tries to print a backtrace right after finalizing all units (see 
InternalExit procedure in system.inc), which can lead to similar problems.

Regards,
Sergei



More information about the fpc-devel mailing list