Einzelnen Beitrag anzeigen

freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#1

Schutzverletzung bei Programmende

  Alt 19. Dez 2017, 08:09
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.
  Mit Zitat antworten Zitat