Hallo,
ich bekommen manchmal Schutzverletzung beim Programmende. Programmausführung aus Delphi XE2. Der Debugger hängt in
unit FastMM4, Methode "RemoveMediumFreeBlock" bei Zeile "mov TMediumFreeBlock[edx].NextFreeBlock, ecx". CallStack:
Code:
FastMM4.RemoveMediumFreeBlock(???)
FastMM4.FastFreeMem(???)
:00414f89 RemoveMediumFreeBlock + $9
System.FinalizeUnits
:004d4bc2 InterceptFinalizeUnits + $5A
:766e8654 KERNEL32.BaseThreadInitThunk + 0x24
:77394a47 ;
:77394a17 ;
Danach kann ich in der Methode procedure FinalizeUnits auf die Zeile nach except einen breakpoint setzen.
Wenn ich weiterlaufen lasse, dann steht der Debugger dort. Dort gibt es ein "InitContext". Die Daten darin sagen mir nicht saußer InitContext.Module.TypeInfo.Unitnames welches ein unitname enthält. An der
unit habe ich auch gearbeitet. Die
unit enthält kein finalization Abschnitt.
Ein finalization habe ich nun hinzugefügt und ein Aufruf einer leeren Methode. Nun tritt der Fehler nicht mehr auf.
Trotzdem würde ich gerne wissen was da schief lief.