AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi EOutOfResources erzeugt Speicherleck
Thema durchsuchen
Ansicht
Themen-Optionen

EOutOfResources erzeugt Speicherleck

Ein Thema von Schorschi5566 · begonnen am 5. Dez 2010 · letzter Beitrag vom 6. Dez 2010
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#21

AW: EOutOfResources erzeugt Speicherleck

  Alt 5. Dez 2010, 22:50
Die EOutOfResources-Exception müsste im Constructor automatisch die "AllowFree"-Variable auf True setzen oder nicht von EHeapException abgeleitet sein. Diese Exception soll ja darauf hinweisen, dass keine Handles mehr zur Verfügung stehen - jedoch braucht eine Exception an sich kein Handle und sollte somit eigentlich ohne Probleme erstellt werden können (im Gegensatz zur EOutOfMemory-Exception) - auch wenn das System keine Handles mehr hat.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#22

AW: EOutOfResources erzeugt Speicherleck

  Alt 5. Dez 2010, 22:55
Auch EOutOfMemory ist schon fehlerhaft implementiert.

Bei diesen Exceptions müßten nicht nur die globalen Exceptionobjekte schon erstellt worden sein, sondern auch schon das ganze Meldungsfenster.

Bei EOutOfResources braucht man zwar für das Exceptionobjekt kein Handle, aber für das Fehlerfenster schon.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#23

AW: EOutOfResources erzeugt Speicherleck

  Alt 5. Dez 2010, 23:00
Als fehlerhaft würde ich das nicht bezeichnen, denn es muss ja nicht unbedingt ein Fester geben (Console-Anwending, Service, etc.). Daher finde ich diese pauschale Bezeichnung falsch. Zudem ist bei diesen Fehlern wichtig, dass man vorher nicht mehr benötigte Resourcen freigibt, bevor eine Meldung angezeigt wird.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#24

AW: EOutOfResources erzeugt Speicherleck

  Alt 5. Dez 2010, 23:04
EOutOfResources ist in Classes deklariert, wärend EHeapException in SysUtils deklariert ist.
Da AllowFree aber als Privat deklariert ist, kann man externe Nachkommen von EHeapException überhaupt nicht ordnungsgemäß verwenden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#25

AW: EOutOfResources erzeugt Speicherleck

  Alt 5. Dez 2010, 23:07
Klar, die Variable gehört in protected - ich meinte eher, dass es falsch wäre, das Meldungsfenster gleich mit zu initialisieren.
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Schorschi5566

Registriert seit: 6. Feb 2006
197 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#26

AW: EOutOfResources erzeugt Speicherleck

  Alt 5. Dez 2010, 23:15
So, jetzt ist die Meldung weg. Super und nochmals danke.

Warum überhaupt eine EOutOfResources kommt, ist mir zwar immer noch nicht wirklich klar aber zumindest bleiben die Exceptions jetzt nicht mehr im Speicher hängen.

In meinem Fall werden doch nur einige GDI-Handles angefordert. Wird der dafür nötige Speicher ebenfalls gleich mitbestellt (dann wäre es logisch) oder wie muss man sich das vorstellen?

Das Programm hat zur Laufzeit zwischen 100-120 der GDI-Handles, Tendenz gleichbleibend.
Uwe
"Real programmers can write assembly code in any language." - Larry Wall
Delphi programming rocks
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#27

AW: EOutOfResources erzeugt Speicherleck

  Alt 6. Dez 2010, 01:26
Also ich halte es immer noch für falsch bewusst in eine Exception reinzulaufen. Ich meine, ich lasse Autos ja auch nicht bewusst an einer Ampel Unfälle bauen und stelle einen Abschleppwagen da neben, um die Wracks weg zu räumen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#28

AW: EOutOfResources erzeugt Speicherleck

  Alt 6. Dez 2010, 08:56
@Luckie
Du bist nicht der Einzige
ist trotzdem interessant dieses Thema zu verfolgen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Schorschi5566

Registriert seit: 6. Feb 2006
197 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#29

AW: EOutOfResources erzeugt Speicherleck

  Alt 6. Dez 2010, 10:08
Ich meine, ich lasse Autos ja auch nicht bewusst an einer Ampel Unfälle bauen und stelle einen Abschleppwagen da neben, um die Wracks weg zu räumen.
Na ja, das sind dann die, die 10 Meter vor der Ampel anhalten.
Uwe
"Real programmers can write assembly code in any language." - Larry Wall
Delphi programming rocks
  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 19:03 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