AGB  ·  Datenschutz  ·  Impressum  







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

Speicherleck finden

Ein Thema von AJ_Oldendorf · begonnen am 27. Mär 2019 · letzter Beitrag vom 27. Mär 2019
Antwort Antwort
Seite 1 von 2  1 2      
AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#1

Speicherleck finden

  Alt 27. Mär 2019, 18:15
Hallo zusammen,
ich habe in meiner Anwendung irgendwo ein Speicherleck. Dies wird mir beim Beenden der Anwendung angezeigt (ReportMemoryLeaksOnShutdown). Ich kenne auch die Größe des Speicherlecks. Da meine Anwendung aber aus sehr vielen Tasks, Objekten, Formularen, etc besteht (Quelltextzeilen > 800000), weiß ich nicht genau, wo sich das Speicherleck befindet.
Da es sich um ein größeres Leck handelt, wird beim Beenden auch nur die Größe angegeben, kein Typ oder Name dazu.
Habt ihr eine Idee, wie ich in meiner Anwendung herausfinden könnte, welches Objekt, Datenrecord, Variable etc. genau dieser Größe entspricht? Dann könnte ich vielleicht dahinter kommen, wo es entsteht.
FastMM habe ich auch schon versucht, aber da steht auch nur "unknown", also komme ich so nicht weiter.
Ich dachte, über die Größe komme ich weiter. Diese ist immer gleich groß
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Speicherleck finden

  Alt 27. Mär 2019, 18:27
Wenn du den "richtigen" FastMM versucht hast, dann sollte in der erstellten Datei auch der komplette Aufrufstack stehen wo dieses "Unknown" erzeugt wurde.

Hast du in der .inc-Datei den "FullDebugMode" aktiviert? Der war ja dafür notwendig, meine ich.
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#3

AW: Speicherleck finden

  Alt 27. Mär 2019, 18:39
gibt es auch ein "falschen" FastMM?

Hier der Auszug, da steht keine mir bekannte Funktion:

A memory block has been leaked. The size is: 65700

This block was allocated by thread 0x9F8, and the stack trace (return addresses) at the time was:
407392
EBA677 [Unknown function at TMethodImplementationIntercept]
4D5A50 [Unknown function at TMethodImplementationIntercept]
40C422
7619EE1C [BaseThreadInitThunk]
777A37EB [Unknown function at RtlInitializeExceptionChain]
777A37BE [Unknown function at RtlInitializeExceptionChain]

The block is currently used for an object of class: Unknown

The allocation number is: 48639618

Current memory dump of 256 bytes starting at pointer address 34A27600:
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#4

AW: Speicherleck finden

  Alt 27. Mär 2019, 18:44
Der richtige ist die Vollversion aus dem Internet. Ist open source. EMBT liefert nur eine Fassung mit Light Speicherleck Erkennung aus. Keine Ahnung warum, evtl. mal M. Eissig hier nach dem Grund fragen...
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#5

AW: Speicherleck finden

  Alt 27. Mär 2019, 18:46
Ich kenne das Thema mit FastMM.
Natürlich habe ich die neuste Version aus dem Netz genommen, nur hilft mir das nicht wirklich weiter. Siehe Post oben
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: Speicherleck finden

  Alt 27. Mär 2019, 18:52
Eventuell mal LeakCheck probieren: https://bitbucket.org/shadow_cs/delphi-leakcheck. Keine Ahnung, ob das hier was bringt, aber einen Versuch sollte es wert sein.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#7

AW: Speicherleck finden

  Alt 27. Mär 2019, 20:17
Hasst du FullDebugMode benutzt?
Siehe dazu fastmm's included Datei, die
diverse Konfigurationsoptionen enthält.
Sollte dann zu einem Stacktrace führen, der die Stelle der Allokation anzeigt.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Speicherleck finden

  Alt 27. Mär 2019, 20:45
Hallo,
die Linker-Optionen richtig gesetzt?
Heiko
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#9

AW: Speicherleck finden

  Alt 27. Mär 2019, 21:01
Hier die Inc-Datei.
Ja habe FullDebugMode an.
@Uwe: Danke, dass kannte ich noch nicht. Gucke ich mir mal an.
Bild von Linker und Compiler hängt auch bei
Miniaturansicht angehängter Grafiken
2019.03.27-21_00_54-001.png   2019.03.27-21_01_14-001.png  
Angehängte Dateien
Dateityp: zip FastMM4Options.zip (6,3 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Speicherleck finden

  Alt 27. Mär 2019, 21:05
Hallo,
Debug-DCU's fehlt, und die beiden Debug-Informationen anhaken.
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:46 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