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
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Speicher freigegeben?

  Alt 17. Jul 2018, 18:09
Am besten die aktuelle Version von FastMM ziehen (https://github.com/pleriche/FastMM4).
Ist ihr "Geld" wert. Die in Delphi eingebaute Version ist etwas "abgespeckt".
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
157 Beiträge
 
Delphi 12 Athens
 
#2

AW: Speicher freigegeben?

  Alt 18. Jul 2018, 13:08
Ich habe mir jetzt auch mal FastMM vonhttps://github.com/pleriche/FastMM4 installiert bzw. in mein aktuelles Projekt integriert. Es läßt sich zwar auch mit der Option {$define FullDebugMode} fehlerfrei compilieren, aber leider bekomme sofort nach dem Start ich eine seltsame Fehlermeldung, obwohl die Unit FastMM4.pas an erster Stelle der Uses-Liste steht (s. Screenshot)
Was mache ich da falsch??
Angehängte Grafiken
Dateityp: jpg FastMM_screenshot.jpg (135,7 KB, 70x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Speicher freigegeben?

  Alt 18. Jul 2018, 15:45
Stoppunkt in SysGetMem und SysAllocMem setzen (zu finden in GetMem.inc) und schauen, wer da rein stiefelt bevor die Meldung kommt.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 8. Mär 2017
Ort: Köln
157 Beiträge
 
Delphi 12 Athens
 
#4

AW: Speicher freigegeben?

  Alt 21. Jul 2018, 16:20
Stoppunkt in SysGetMem und SysAllocMem setzen (zu finden in GetMem.inc) und schauen, wer da rein stiefelt bevor die Meldung kommt.
Diesem Vorschlag hätte ich vor ein paar Tagen noch nicht folgen können, alldieweil ich nur die 'Starter' - Edition besaß, mit der Debuggen im Quelltext von 'System' mangels desselben nicht möglich war. Mit der Community-Edition, die ich natürlich sofort am 18.7. heruntergeladen und installiert habe, klappt das natürlich. Dabei zeigte sich, dass 'System' (vermutlich bei der Initialisierung) Speicher alloziert, bevor die Initialisierung der Units in der .dpr beginnt.(s. Grafik)
Das führt eben dazu, dass FastMM sich sofort mit einer Fehlermeldung verabschiedet.
Hier https://www.delphipraxis.net/194755-...elphi-7-a.html ist genau dieses Problem beschrieben. Die dort gefundene Lösung kommt ja leider für mich nicht in Betracht, da ich die Quelltexte ja nicht verändern darf
Im Grunde genommen benötige ich das 'große' FastMM auch nicht so dringend, solange ich mit der 'ReportMemoryLeaksOnShutdown' - Option überhaupt keine Memory - Leaks gemeldet bekomme.
BTW, die Community-Edition ist wirklich eine feine Sache! So komme ich endlich mal zu einem 'richtigen' Delphi, obwohl ich vermutlich auch in Zukunft nur einen kleinen Teil der Features nutzen werde. Aber schon allein die Verfügbarkeit der Sources ist ein enormer Gewinn!

Gruß Maekkelrajter
Angehängte Grafiken
Dateityp: jpg Getmem_inc.jpg (80,4 KB, 46x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

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

Registriert seit: 8. Mär 2017
Ort: Köln
157 Beiträge
 
Delphi 12 Athens
 
#6

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.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

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
Antwort Antwort


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 01:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz