AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung
Thema durchsuchen
Ansicht
Themen-Optionen

ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

Ein Thema von Andreas13 · begonnen am 5. Jul 2022 · letzter Beitrag vom 8. Jul 2022
Antwort Antwort
Seite 1 von 3  1 23      
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#1

ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 5. Jul 2022, 18:27
Hallo Community,
wegen einer Verständnisfrage wende ich mich diesmal an Euch:

Ein mysteriöser Speicherleck (tritt merkwürdigerweise nur auf, wenn ich einige Vektoren und Matrizen mit der Länge n = 4 bzw. 4 x 4 dimensioniere, nicht jedoch, wenn n = 6 oder höher ist. ) liefert die Meldung (s. Bild), wenn: ReportMemoryLeaksOnShutdown:= True; .
Auch madExcept hilft mir leider nicht beim Finden meines Fehlers: Seine Meldungen kann ich noch weniger deuten und auswerten.

Daher die Frage:
Was bedeuten die Zahlen in der Fehlermeldung konkret?

- Habe ich Speicherlecks in Höhe von 61 bis 68 Bytes insgesamt 24-mal?
- Oder etwas ganz anderes?

Ich möchte eigentlich wissen, um wieviel Bytes es sich insgesamt handelt, um für das Projekt eventuell eine "vorläufige Bagatellgrenze" zu definieren, da ich nicht noch mehr Zeit mit der Speicherleck-Suche verplempern möchte...

Danke & viele Grüße
Andreas
Miniaturansicht angehängter Grafiken
speicherleck-meldung.jpg  
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 5. Jul 2022, 18:50
Ja zumindest ich habe das auch immer so interperetiert. Du hast 24 nicht freigegebene Memoryblöcke mit einer Grösse von 61-68 Bytes. Für die genauere Fehlersuche nutze ich dann die Vollverison des FastMM4 und habe da diverse Debug Optionen aktiviert, mit dene alles viel detailierter in ein Logfile geschrieben wird.

Die Vollversion findest du hier und beachte dabei insbesondere die Datei FastMM4Options.inc: https://github.com/pleriche/FastMM4
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#3

AW: ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 5. Jul 2022, 19:00
Als Ergänzung dazu:

Schau mal bitte in die FastMM4Options.inc, sie enthält diverse Schalter, die bei der Fehlersuche durchaus hilfreich sein können.

Da wäre u. a.

{$define FullDebugMode}

und desweiteren

{$define LogErrorsToFile}

Damit bekommst Du etwas ausführlichere Informationen in eine Datei geschrieben.

Ein Auszug aus 'nem Programm von mir:
Code:
A memory block has been leaked. The size is: 12

This block was allocated by thread 0x6E0, and the stack trace (return addresses) at the time was:
402EAC [IdCharsets][IdCharsets][@GetMem]
4045EF [IdGlobalProtocols][IdGlobalProtocols][QuoteSpecials]
40498A [IdHeaderCoder2022JP][IdHeaderCoder2022JP][@ClassCreate]
4A59D6 [..\Indy10\Lib\Core\IdThreadSafe.pas][IdThreadSafe][TIdThreadSafe.Create][251]
49750B [..\Indy10\Lib\Protocols\IdAuthentication.pas][IdAuthentication][RegisterAuthenticationMethod][157]
4A5B65 [..\Indy10\Lib\Core\IdThread.pas][IdThread][IdThread][730]
4050EB [IdSSLOpenSSLHeaders][IdSSLOpenSSLHeaders][EVP_PKEY_meth_free]
405153 [IdSSLOpenSSLHeaders][IdSSLOpenSSLHeaders][EVP_PKEY_decrypt]
407CD7 [SysInit][SysInit][..]
683A14 [lw:\Verzeichnis\Programmname.dpr][Programmname][Programmname][142]
7C92B084 [Unknown function at RtlUnicodeStringToInteger]

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

The allocation number is: 297

Current memory dump of 256 bytes starting at pointer address 7FAA4750:
(* hier folgt dann ein Hex-Dump *)
Die Zahlen rechts in den eckigen Klammen dürften die Zeilenzahl in der Quelltextdatei sein, an der das von FastMM festgestellte Speicherleck seinen Ursprung hat.

Bei dem Progamm handelt es sich um 'ne olle Klamotte mit Delphi 7 und Indy10 erstellt.
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#4

AW: ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 5. Jul 2022, 20:35
Hallo,
vielen Dank für Eure Tipps!
Ich glaube mit FastMM4 bereits eine heiße Spur gefunden zu haben.
Viele Grüße
Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 6. Jul 2022, 09:18
An der Stelle auch für spätere Leser noch ein Hinweis:
Zum Beispiel bei anonymen Methoden ist es manchmal nicht möglich ein (sehr kleines) Speicherleck zu verhindern. In solch einem Fall kannst du mit RegisterExpectedMemoryLeak das Speicherleck ausblenden, so dass es nicht mehr in der Liste auftaucht.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#6

AW: ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 6. Jul 2022, 10:00
Danke, Sebastian!
Es stellt sich für mich die neue Frage, ob FastMM4 alleine genügt und ob ich daher madExcept deinstallieren sollte? Dessen umfangreiche "leak reports" konnte ich leider weder deuten, noch haben sie mich auf eine heiße Spur gebracht.

Grüße, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.446 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 6. Jul 2022, 10:05
Ich nehme immer madExcept, da bekomme gleich einen "schönen" Callstack.
Was davon kannst Du nicht deuten?
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 6. Jul 2022, 10:11
(..)Zum Beispiel bei anonymen Methoden ist es manchmal nicht möglich ein (sehr kleines) Speicherleck zu verhindern.(..)
Kann ich mir grad nicht vorstellen. Was wäre da ein Beispiel?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#9

AW: ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 6. Jul 2022, 10:14
@Freimatz
Hallo,
FastMM4 sagte mir direkt, welche Routine den Speicherleck verursacht hat. Der viele Seiten lange Callstack von madExcept war für mich leider eher verwirrend. Auch war dort kein konkreter Hinweis für die eigentliche Ursache, oder ich habe diese vor lauter Bäumen nicht sehen können...

Die zwei madExcept Uralt-Videos auf der Homepage passen überhaupt nicht zur jetzigen Version und sind leider überhaupt keine Hilfe. Auch vermisse ich eine Art Tutorium für madExcept-Anfänger.

Grüße, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: ReportMemoryLeaksOnShutdown:= True – Deutung der Speicherleck-Meldung

  Alt 6. Jul 2022, 12:25
Ich habe vor langer Zeit auch mal MadExcept genutzt, aber heute nutze ich den nicht mehr. Zur Fehlersuche reicht mir FastMM4 völlig aus. Das fertige Programm kompiliere ich dann mit dem Delphi internen FastMM4.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 17:58 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