[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