AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Speicher freigegeben?

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

Registriert seit: 26. Mai 2018
106 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Speicher freigegeben?

  Alt 16. Jul 2018, 22:03
Hallo,

gibt es eigentlich eine Möglichkeit in Delphi (habe Delphi 10) oder evtl. ein Tool um zu überprüfen, ob man korrekt alles an Speicher wieder freigegeben hat, wenn die programmierte Anwendung wieder beendet wird? Gruß Michael
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
134 Beiträge
 
#2

AW: Speicher freigegeben?

  Alt 16. Jul 2018, 22:05
Beispielsweise das hier in die dpr-Datei packen
Delphi-Quellcode:
{$IFDEF DEBUG}
 ReportMemoryLeaksOnShutdown := True;
{$ENDIF}
Ich persönlich packe das in IFDEF DEBUG denn dann brauche ich mir beim Wechsel von Debug auf Release keine Gedanken zu machen, ob ich diese Zeile kommentiert habe oder nicht.
Es gibt aber auch bessere Möglichkeiten. Ich glaube eine davon heißt MadExcept. Die delphieigene Variante mit ReportMemoryLeaksOnShutdown ist aber auch gut und für Amateure absolut ausreichend.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
6.262 Beiträge
 
Delphi XE4 Professional
 
#3

AW: Speicher freigegeben?

  Alt 16. Jul 2018, 22:21
Hallo,
du verwechselst MadExcept mit FastMM4.
Heiko
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
518 Beiträge
 
#4

AW: Speicher freigegeben?

  Alt 16. Jul 2018, 22:38
madExcept erkennt auch Memory Leaks etc.

Zitat:
madExcept is also able to find memory leaks, resource leaks and buffer overruns for you.
  Mit Zitat antworten Zitat
MicMic

Registriert seit: 26. Mai 2018
106 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: Speicher freigegeben?

  Alt 17. Jul 2018, 16:59
...Die delphieigene Variante mit ReportMemoryLeaksOnShutdown ist aber auch gut und für Amateure absolut ausreichend.
Ich bin doch Profi aber ich versteh trotzdem nix
Inzwischen hab ich gelesen, dass mit diesem "ReportMemoryLeaksOnShutdown" vieles nichts gefunden wird... z.B. so Sachen wie API Zeugs.

Ich dacht, dass ist alles einfacher. So auf die Art...bei Programmstart hab ich 4000 Byte Speicher frei und nach Programmende 3999 Byte. Also ist irgendwo 1 Byte nicht freigegeben worden. So in der Art hab ich's mir vorgestellt
MadExcept in Google = Englisch... ne, ich will nicht wieder neues lernen

Ich geh mal schön mein Programm durch... ist wohl die beste Variante Danke für die Infos von Euch.

Michael
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.294 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Speicher freigegeben?

  Alt 17. Jul 2018, 17:14
Du kannst auch das große FastMM4 benutzen und FullDebugMode setzen. Dann erhälst du eine Log-Datei mit StackTrace wo du genau siehst wo der Speicher angefordert wurde.

Und mir hat ReportMemoryLeaksOnShutdown bisher in 99% der Fälle ausgereicht. Nur zweimal musste ich auf die große Variante umsteigen weil ich einen Fehler absolut nicht gefunden hatte.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
Ort: Oberreichenbach
16.170 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

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
18 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

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??
Miniaturansicht angehängter Grafiken
fastmm_screenshot.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

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
18 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

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
Miniaturansicht angehängter Grafiken
getmem_inc.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2018 by Daniel R. Wolf