AGB  ·  Datenschutz  ·  Impressum  







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

Memoryleak woher?

Ein Thema von sko1 · begonnen am 11. Jul 2017 · letzter Beitrag vom 11. Jul 2017
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#11

AW: Memoryleak woher?

  Alt 11. Jul 2017, 13:12
Die einzige Programmstelle, wo überhaupt ein Encoding vorkommt, wäre diese:
Entweder du stellst den kompletten Quellcode als Anhang rein, oder du installierst FastMM und befolgst die Schritte von stevie. Aber alles andere hilft weder dir noch uns dabei dir zu helfen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: Memoryleak woher?

  Alt 11. Jul 2017, 13:51
Für mich sieht das schon ziemlich gut nach einem Teil einer FastMM Meldung zu einem Speicherleck aus.
Die Meldung dort zeigt nur das "was" - mit der von mir geposteten Anleitung kann man sich das "woher" (siehe Threadtitel) selbst beantworten, weil der Callstack, der zu der Speicherallokierung führt, geloggt wird.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Memoryleak woher?

  Alt 11. Jul 2017, 14:47
Ich hänge mich mal kurz an das Thema mit folgender Frage ran:

Ich entwickele zur Zeit eine Anwendung, die mehrere ebenfalls selbst programmierte DLLs einbindet und nutzt. Alle DLLs (13 an der Zahl) und die Anwendung selbst sind in der gleichen Projektgruppe.

Mir geht es jetzt hauptsächlich darum, wie ich evtl. vorhandene MemoryLeaks in einer DLL finden kann. Manchmal kommt es mir nämlich so vor, als ob Delphi mir die nicht wirklich anzeigt.

Wie muss ich genau vorgehen, um auch MemoryLeaks innerhalb einer DLL angezeigt zu bekommen? Muss ich die DLL selbst debuggen und als Host Anwendung meine Hauptanwendung angeben? Oder reicht es, einfach die Anwendung zu starten und dann die DLL Funktionen zu nutzen? In die DLL kann ich ja auch schrittweise reindebuggen wenn ich nur die Anwendung starte. Deshalb wundert es mich ein wenig.


Wäre super, wenn mir jemand darauf (auch in einem gekaperten Thread [aber mich gleichem Thema]) jemand eine Antwort geben könnte wie ich da genau vorgehen muss.
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#14

AW: Memoryleak woher?

  Alt 11. Jul 2017, 14:48
Danke erst mal für die Tips!

Das mit dem FastMM4 werde ich jetzt in Angriff nehmen und Ergebnisse vermelden...

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#15

AW: Memoryleak woher?

  Alt 11. Jul 2017, 15:08
Ich hänge mich mal kurz an das Thema mit folgender Frage ran:
Bitte nicht, dann wird es nur unnötig unübersichtlich.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#16

AW: Memoryleak woher?

  Alt 11. Jul 2017, 15:19
Nach Eurer Beschreibung habe ich jetzt mal FastMM4 dazugehängt (Version 4991 von Sourceforge).

Nach Programmende bekommt ich folgende Meldung siehe Anhang.

Irgendwas mach ich aber noch falsch!

Ciao
Stefan

edit:
In der DLL-dpr-Datei habe ich jetzt die beiden defines ergänzt:

Delphi-Quellcode:
{$DEFINE FullDebugMode}
{$DEFINE LogMemoryLeakDetailToFile}
und nun gibt es am Programmende gar keine Meldung mehr!
Ist damit das Leak verschwunden?
Miniaturansicht angehängter Grafiken
neue-bitmap.jpg  

Geändert von sko1 (11. Jul 2017 um 15:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#17

AW: Memoryleak woher?

  Alt 11. Jul 2017, 15:33
Ich komme mit den Options nie so recht klar. Ich hab einfach in der dpr folgendes stehen (ausser dem uses FastMM4 an erster Stelle natürlich):

Delphi-Quellcode:
   System.ReportMemoryLeaksOnShutdown := True;
   SetMMLogFileName(PAnsiChar('C:\temp\Leaks.txt'));
Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#18

AW: Memoryleak woher?

  Alt 11. Jul 2017, 15:46
Deine zweite Zeile ergibt bei mir

"[dcc32 Fehler] testdll.dpr(30): E2003 Undeklarierter Bezeichner: 'SetMMLogFileName'"

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#19

AW: Memoryleak woher?

  Alt 11. Jul 2017, 15:48
System.ReportMemoryLeaksOnShutdown ist ausschließlich für den eingebauten FastMM

Die Options.inc und Funktionen ala SetMMLogFileName sind für den externen FastMM.
Der muß natürlich auch als erste Unit in der DPR eingebunden sein.

[edit] wenn du SetMMLogFileName aufrufen willst, dann mußt du auch die entsprechende Unit ins Uses aufnehmen.
System.pas und SysInit.pas werden dagegen immer automatisch eingebunden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 08:23 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