Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

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

AW: Hilfe zur Speicherleck Suche benötigt

  Alt 5. Mär 2022, 19:55
Eine gesonderte Erwähnung in NOTICE.TXT gibt's aber keine
Warum? Weil du da schon drin stehst!

Du kannst auch gern meinen Realnamen eintragen: Sebastian Jänicke

Noch ein Wort zur Fehlersuche:
Ich habe zwar manuell gesucht, indem ich den Weg des Arrays verfolgt habe und schlicht den Ausführungszeiger testweise über die Methode hinweg geschoben habe, so dass ich gemerkt habe, dass es daran liegt, und dann habe ich das Problem auch schon gesehen. Aber wäre der betreffende Quelltext länger gewesen oder hätte ich es nicht so schnell gefunden, hätte ich es anders gemacht.

Ich denke, dass das allgemein interessant sein könnte, weil es nicht jeder kennt, deshalb schreibe ich kurz etwas zum Thema Datenhaltepunkte.
Was macht ein Datenhaltepunkt?
Ein Datenhaltepunkt hält an, wenn eine Speicherstelle verändert wird.
Warum hilft uns das hier?
Weil im Speicher des Arrays außerhalb der Elemente geschrieben wurde.

Heißt:
In TDECPasswordHash.SetSalt wird FSalt zugewiesen. Bis zum Freigeben des Speichers dürfte nun nur noch eine Änderung an den Elementen passieren. Also setzt man einen Haltepunkt auf FSalt nach der Zuweisung. Das Ergebnis ist, dass an genau der Fehlerstelle angehalten wird:

datenhaltepunktarray.png

Datenhaltepunkte helfen enorm, wenn Speicher falsch überschrieben wird, vorausgesetzt man weiß vorher an welcher Stelle etwas überschrieben wird.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat