Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi FastMM Fehlermeldungen (https://www.delphipraxis.net/168803-fastmm-fehlermeldungen.html)

Alex_ITA01 12. Jun 2012 12:03

FastMM Fehlermeldungen
 
Hallo zusammen,
habe mal FastMM4 in mein Programm eingebunden und bekomme beim Beenden der Anwendung folgende Fehlermeldung:

FastMM hat einen FreeMem Aufruf gefunden, nachdem FastMM deinstalliert wurde.

Was fange ich jetzt damit an? Ist das "schlimm"? Ich habe Version 4.99 ganz oben als erste Unit in meine DPR eingefügt.

Gruß

Alex_ITA01 14. Jun 2012 12:00

AW: FastMM Fehlermeldungen
 
Hallo,
hat hierzu keiner eine Idee?
Ich bekomme die Fehlermeldung auch, wenn ich die Anwendung nicht aus der IDE starte...

Gruß

Iwo Asnet 14. Jun 2012 13:31

AW: FastMM Fehlermeldungen
 
Das steht doch in der INC-Datei drin. FastMM wird beim Beenden irgendwann entladen. Nun ist danach noch jemand am Speicherverwalten und dann sagt FastMM, "Also prüfen kann ich nicht mehr, wer da rumfrickelt".

Prüfe mal, ob FastMM wirklich die erste Unit ist, die eingebunden wird.

Und wie? Steht alles bei FastMM.

himitsu 14. Jun 2012 13:46

AW: FastMM Fehlermeldungen
 
Zitat:

Prüfe mal, ob FastMM wirklich die erste Unit ist, die eingebunden wird.
Natürlich als Erstes in der DPR (noch vor fast allen PAS, abgesehn von System und SysInit)
[edit] er hat ja behauptet das sei schon so.

Nutzt du noch irgendwelche BPLs oder DLLs, welche ebenfalls auf diesen Shared-FastMM losgehn?

Es kann auch sein, daß noch irgendwo ein Thread schief läuft, welcher sich zu spät beendet, bzw. wo man vergessen hat ihn überhaupt zu beenden.

ele 14. Jun 2012 13:58

AW: FastMM Fehlermeldungen
 
Ich benutze auch 4.99, das Problem ist bei mir allerdings noch nie aufgetaucht.

Auf jedenfall lässt sich die Prüfung ausschalten: DetectMMOperationsAfterUninstall in der Datei FastMMOptions.inc einfach deaktivieren.

Alex_ITA01 14. Jun 2012 15:50

AW: FastMM Fehlermeldungen
 
Es ist definitiv die erste Unit in der DPR Datei.
Du sagst, vielleicht wurde etwas vergessen freizugeben oder jemand reserviert noch Speicher. Dafür habe ich es ja eingebunden :-)

Mehr Meldungen bekomme ich aber nicht außer diese Fehlermeldung.
Keine Lecks werden angezeigt oder ähnliches.

Ich nehme jetzt erstmal den Compilerschalter zum abschalten der Meldung.

Gruß

shmia 14. Jun 2012 16:26

AW: FastMM Fehlermeldungen
 
Zitat:

Zitat von Alex_ITA01 (Beitrag 1170910)
Keine Lecks werden angezeigt oder ähnliches.

Dann solltest du ein Leck provozieren damit du feststellen kannst ob in FastMM alles richtig eingestellt ist.

Schreib dazu einfach folgenden Code in deine Projektdatei vor dem Aufruf von Application.Run:
Delphi-Quellcode:
// mehrere Speicherlecks erzeugen
TForm1.Create(nil);

himitsu 14. Jun 2012 21:46

AW: FastMM Fehlermeldungen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Im FullDebugMode merkt sich FastMM sogar wer den Speicher reserviert, so daß man später z.B. genau weiß wo die Speicherlecks herkommen,
außerdem kontroliert es, daß Speicher nicht nach dessen Freigabe beschrieben wird und es prüft auf Bufferoverruns.


Wenn du immernoch auf der Suche nach dem Problem bist.
Füge mal diese Unit mal noch vor FastMM als aller erstes in die DPR ein.
Starte das Programm im Debugger.

Delphi hält dann automatisch in dieser Unit an und du kannst entweder im Stacktrace erkennen, wer da Schuld ist,
oder du gehst mit F7 so lange weiter, bis zu eine bekannte Stelle findest.

Solltest du in der CPU-Ansicht landen, wenn es anhält, dann steht in EAX die "ID" der Funktion und in EDX steht die Adresse (1), wo vermutlich der Aufruf her kam.

1) notfalls beim Kompilieren immer Stackframes erzeugen lassen


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 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