2 Stimmen

GDI-Handle-Typen

Ich versuche gerade, ein GDI-Handle-Leck aufzuspüren. Ich verwende derzeit GDIView um sie aufzuspüren. Das Tool unterteilt die GDI-Objekte in die Kategorien Stift, ExtPen, Bitmap, Schrift, Palette, Region, DC, Metafile DC, Enhanced Metafile DC und Other GDI. Diese Kategorien werden in einer Spalte namens GDI Total summiert. Darüber hinaus gibt es eine Spalte mit der Bezeichnung All GDI. In dieser Spalte entdecke ich das Leck.

Da ich den Quellcode des Tools nicht habe, kann ich nicht sehen, was wirklich los ist. Hat der Autor des Tools einen Handle-Typ übersehen? Es sieht so aus. Ich weiß aber, dass es ist ein Leck, denn einige Nutzer berichten, dass ihnen der berüchtigte Dialog angezeigt wird Eine erforderliche Ressource war (Ende des Textes). Es kann Wochen dauern, bis der Dialog angezeigt wird, daher bin ich mir ziemlich sicher, dass es sich nicht um einen DC handelt.

Für jede Idee, wie man dies aufspüren kann, wären wir sehr dankbar! Da ich ein begrenztes Budget habe, sind tausend-Dollar-Tools nicht in Frage. Debugging-Haken in GDI würde ausreichen, wie ich nichts dagegen tun, Detektivarbeit.

2voto

Jörgen Sigvardsson Punkte 4782

Ich habe das Problem gefunden. Anscheinend, GDIView ist der Meinung, dass Icons in die Kategorie "unbekannt" fallen. Das Problem war, dass ein Symbol geladen und an ein Objekt angehängt wurde. Das Objekt war nicht so eingerichtet, dass das Symbol bei seiner Zerstörung automatisch gelöscht wird. Eine E-Mail an den Autor des besagten Tools...

0voto

sharptooth Punkte 162790

Ich hatte einmal ein ähnliches Problem und habe den Task-Manager benutzt, um die Anzahl der GDI-Handles für jeden Prozess anzuzeigen, und bin den Programmcode durchgegangen, um zu sehen, wo die Anzahl der Handles unerwartet ansteigt und nicht wieder abnimmt. Es dauerte einige Zeit, aber schließlich fand ich den Fehler mit Divide-and-Conquer.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X