[fpc-devel] arm-embedded apps crash in exception handler initialization because heapmanager is not initialized
Michael Ring
mail at michael-ring.org
Sat Mar 2 23:17:22 CET 2013
I am not sure if I have hit work in progress code here....
my arm-embedded app crashes during initialization, the reason is that
now exceptions are part of the rtl but there is no properly initialized
heapmanager:
Procedure InitExceptions;
{
Must install uncaught exception handler (ExceptProc)
and install exceptions for system exceptions or signals.
(e.g: SIGSEGV -> ESegFault or so.)
}
begin
ExceptionClass := Exception;
ExceptProc:=@CatchUnhandledException;
// Create objects that may have problems when there is no memory.
//CRASH BOOM BANG in the following line
OutOfMemory:=EOutOfMemory.Create(SOutOfMemory);
Creating the object fails because the MemoryManager is not properly
initialized yet.
When I put heapmgr unit before sysutils im my program (this should not
be necesary, right???) I can debug a little deeper in object
initialization but still the root cause exists that there has never been
a call to RegisterHeapBlock so objects cannot be initiated because
there's no memory block defined that heapmgr can draw memory from.
I can hack the RegisterHeapBlock call into the initialization code of
the unit heapmgr but this is more a hack than a proper solution -->
seems a bad idea to me.
How can this be properly solved?
Michael
More information about the fpc-devel
mailing list