Thema: Delphi Handle Leak finden

Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#7

Re: Handle Leak finden

  Alt 16. Jan 2009, 17:15
Hallo,

Zitat von nahpets:
vermutlich weiche ich jetzt vom Thema ab.
Leicht, da es nun weniger um das Grundsätzliche als um Dein Problem geht

Zitat von nahpets:
Zu beidem gibt es kein CloseKey.
Da bist Du glaube ich auf der falschen Fährte - RegCloseKey ist doch nur nötig, falls der Schlüssel durch RegOpenKey erfolgreich geöffnet wurde. Die Rückmeldung "NAME NOT FOUND" zeigt ja, es gibt diesen Unterschlüssel nicht.

Zitat von nahpets:
Hat jemand eine Idee, wie ich herausfinden kann, welcher Teil der Software in der Registrierung Schlüssel aus dem Zweig HKCU\Software\Classes liest. Ich selbst lese mit Sicherheit keine Werte aus diesem Bereich.
Am einfachsten ist bzgl. Delphi über die Suche in Dateien z.B. nach RegOpenKey zu suchen, dann z.B. im Source Verzeichnis von Delphi und in Deinen Komponentenverzeichnissen.

Da wirst Du schon schnell sehen, wie oft und an welchen Stellen auf die Registry zugegriffen wird. Da sind von VCL Datenbank-Funktionen und Forms.pas über die RTL (System.pas, Windows.pas) bis hin zu den Third-Party-Komponenten (hier z.B. bei TB2k, Indy etc.pp.).

Zurück zum Grundsätzlichen:
Ich bin jetzt etwas weiter mit der Suche des Leaks, einfach großzügig Code auskommentieren und per "Iterationsverfahren" wieder einschliessen, bis das Leak entsteht. Dann bei der gefundenen Stelle gegebenfalls in die entsprechende Unit gehen und das gleiche von vorn.

Aufwendig, aber in meinem Fall besser als ein vollständiges Code-Audit an THtmlViewer, was ja ~ 20.000 - 30.000 Zeilen sind

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat