AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Speicher freigegeben?

Ein Thema von MicMic · begonnen am 16. Jul 2018 · letzter Beitrag vom 24. Jul 2018
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#11

AW: Speicher freigegeben?

  Alt 23. Jul 2018, 10:53
Der callstack sieht nach dem Laden von Resourcestrings aus, das sollte aber weit nach dem initialization Block von FastMM4.pas passieren.

Mehr kann ich ohne genauere Informationen nicht sagen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Maekkelrajter
Online

Registriert seit: 8. Mär 2017
Ort: Köln
118 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Speicher freigegeben?

  Alt 23. Jul 2018, 14:04
Der callstack sieht nach dem Laden von Resourcestrings aus, das sollte aber weit nach dem initialization Block von FastMM4.pas passieren.
Genau das ist aber offensichtlich nicht der Fall. Es wird noch munter weiter alloziert, bevor die Abarbeitung des 'initialization' - Blocks von FastMM beginnt.
Da werden z.B. von System.SysUtils.GetFormatSettings TFormatSettings.GetEraInformation, TFormatSettings.GetDayNames, TFormatSettings.GetMonthNames usw. aufgerufen. Das kann also überhaupt nicht funktionieren. Womöglich gibt es eine neuere Version von FastMM, die das berücksichtigt (ich habe V4.992).
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#13

AW: Speicher freigegeben?

  Alt 23. Jul 2018, 16:02
Der callstack sieht nach dem Laden von Resourcestrings aus, das sollte aber weit nach dem initialization Block von FastMM4.pas passieren.
Genau das ist aber offensichtlich nicht der Fall. Es wird noch munter weiter alloziert, bevor die Abarbeitung des 'initialization' - Blocks von FastMM beginnt.
Da werden z.B. von System.SysUtils.GetFormatSettings TFormatSettings.GetEraInformation, TFormatSettings.GetDayNames, TFormatSettings.GetMonthNames usw. aufgerufen. Das kann also überhaupt nicht funktionieren. Womöglich gibt es eine neuere Version von FastMM, die das berücksichtigt (ich habe V4.992).
Wenn das der Fall ist, dann ist FastMM4 nicht die erste Unit, die initialisiert wird.
Setz mal nen Haltepunkt in System._StartExe, InitUnits und FastMM4.initialization. Da muss er vor der Meldung vorbei kommen.

Außerdem kann ein Haltepunkt in InitUnits an der Stelle wo TProc(P)(); steht, helfen, zu sehen, welches die Units sind, die gerade initialisiert werden, dort einfach dann mit F7 reinspringen.

Dann lies dir nochmal den letzten Paragraph in der Meldung aus deinem ersten Screenshot durch und mach dir Gedanken, ob das nicht der Fall ist bei dir - alles andere ist
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Maekkelrajter
Online

Registriert seit: 8. Mär 2017
Ort: Köln
118 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Speicher freigegeben?

  Alt 24. Jul 2018, 11:04
Außerdem kann ein Haltepunkt in InitUnits an der Stelle wo TProc(P)(); steht, helfen, zu sehen, welches die Units sind, die gerade initialisiert werden, dort einfach dann mit F7 reinspringen.
Das war der entscheidende Tip.
So konnte ich feststellen, dass vor dem 'initialize' von FasMM4.pas noch SHFolder.pas initialisiert wurde, weil SHfolder in der uses-Klausel im 'implementation'-Teil von FasMM4 aufgeführt ist. Da war es relativ leicht, (vorläufige) Abhilfe zu schaffen. Die 3 Deklarationen, die FastMM4 aus SHFolder benötigt, habe ich kurzerhand in FastMM4.pas eingefügt und SHFolder aus der uses - Liste entfernt. Schon war die Fehlermeldung verschwunden und FastMM lief, was sich auch (erwartungsgemäß) durch einen erheblichen Performanceverlust in der IDE bemerkbar machte.
Es ist mir allerdings ein Rätsel, wie FastMM in der Original-Fassung überhaupt irgendwo funktionieren kann??

Edit:
Die Lösung des Rätsels: FastMM4 hatte eine zufällig im Suchpfad liegende uralte Version von SHFolder.pas eingebunden. Nachdem ich den alten Mist samt .dcu entsorgt hatte, klappte alles ohne Änderung. Nunmehr wird die aktuelle WinAPI.ShFolder.pas eingebunden, und damit läuft's nun!

Geändert von Maekkelrajter (24. Jul 2018 um 13:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz