AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Speicherproblem mit Objekten in DLL
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherproblem mit Objekten in DLL

Ein Thema von BastiFantasti · begonnen am 4. Dez 2023 · letzter Beitrag vom 8. Dez 2023
Antwort Antwort
Seite 3 von 3     123   
Kas Ob.

Registriert seit: 3. Sep 2023
353 Beiträge
 
#21

AW: Speicherproblem mit Objekten in DLL

  Alt 7. Dez 2023, 09:15
@BastiFantasti , Hi

For me this behavior looks like dangling pointers (by-copy), this of course will leads to memory leak but not exactly as traditional just not-freed.

So my thoughts here:
1) you can increase the stack reported by FastMM for the leaks by adjusting a constant in FastMM4.pas to something like 30, it might help, or you can use EurekaLog as it will report the leaks with far more accuracy, as i can't see if the record (you mentioned in the second post) in the report, did it leak too ?
2) the most crucial thing is to check and then double check, how these record and objects being passed to the DLL, i mean how did you declare the parameters for these managed types or that record, are these "const" or "var" or left as default without modifier, each one will behave differently and this might cause this copy, hence increasing the ref count causing this leak.
3) are doing any sort of casting on managed type or that record? is it passed by pointer or as const ? you can also track its refCount (or any of its managed type field) in memory before calling from the EXE and compare on the DLL after that call.

Hope that helps.
Kas
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Speicherproblem mit Objekten in DLL

  Alt 7. Dez 2023, 14:45
Wenn du (ggf. auch nur mir per PN, das gebe ich nicht weiter) ein Beispiel schicken könntest, kann ich mir das gerne einmal anschauen. Ich benutze die Klassen selbst und habe nicht solche Leaks.
Wollte dir gerade ein PN schicken, aber dein Inbox ist voll
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: Speicherproblem mit Objekten in DLL

  Alt 8. Dez 2023, 14:02
Das Problem ist behoben.
Es war ein nicht freigegebenes JSON Objekt bei der Objektserialisierung.

Für die anderen, die auch in diese Verlegenheit kommen:

Code:
var
  jo: System.Json.TJsonObject;
begin
  try
    jo := rest.Json.TJson.ObjectToJsonObject(aObject);
    Result := jo.Format(DEF_JSON_INDENT);
  finally
    freeandnil(jo);
  end;
end;
Hier hatte ich vergessen das TJsonObject freizugeben
d.h. der Fehler war nicht bei Delphi zu suchen, sondern 40cm vor dem Bildschirm.
  Mit Zitat antworten Zitat
hoika

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

AW: Speicherproblem mit Objekten in DLL

  Alt 8. Dez 2023, 15:42
Hallo,
hätte FastMM4 nicht wenigstens das Objekt anzeigen müssen?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Speicherproblem mit Objekten in DLL

  Alt 8. Dez 2023, 18:34
Hallo,
hätte FastMM4 nicht wenigstens das Objekt anzeigen müssen?
Das schon, aber ich kann nachvollziehen, dass es hier nicht offensichtlich war, was das Grundproblem war. Denn im Log stand ja (siehe oben) TJSONObject x 345, weil diese in der Json-Struktur mehrfach verwendet werden. Hier dann das oberste zu finden, dazu dann den Stacktrace, ...

Klar, wenn man es dann erst weiß, ist es total logisch, auch dem Threadersteller. Aber wie es halt so ist... wenn man sucht und sucht, in die falsche Richtung schaut, ... Wem ist es noch nicht so ergangen? Mir auf jeden Fall schon oft. Wichtig ist, dass man daraus lernt, so dass man beim nächsten Mal weniger lange sucht.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 07:27 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