Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eigenleben... (https://www.delphipraxis.net/101809-eigenleben.html)

Ganymed 18. Okt 2007 13:39


Eigenleben...
 
Hallo, liebe Delphi-Gemeinde!

Irgendwie scheint mein Projekt ein Eigenleben entwickelt zu haben. Seit einiger Zeit schon legt es ein absurdes Verhalten an den Tag und nun häuft sich das in einem inakzeptablen Ausmaß...
Bei dem Projekt handelt es sich um ein ca. 7 Jahre altes Delphi-5-Projekt mit über 400 Units und verschiedenen Drittanbieterkomponenten und eigenen Komponenten.

Die Probleme äußern sich z.B. so:
  • Eigenschaften, die im Objekt-Manager eingestellt wurden, sind beim nächsten öffnen des Formulars/Datenmoduls nicht mehr da.
  • Beim Freigeben eines Formulars kommt es zu einer InvalidPointerOperation oder AccessViolation. Wenn man nun das Formular in der IDE öffnet, nix tut und einfach nur neu kompiliert, kommt es nicht mehr zu diesen Fehlern.
  • Destruktoren von Objekten werden ignoriert (nicht kompiliert; Haltepunkt ungültig)
  • Es gibt einige Funktionen, die nur ein "inherited" enthalten. Wenn man diese Funktionen komplett entfernt, kommt es ebenfalls zu ungültigen Zeigeroperationen und Zugriffsverletzungen...

Das sind so die gröbsten Schnitzer, die das Projekt macht. Es passiert auch nicht immer und nicht alles auf einmal. Aber merkwürdig ist das schon und vor allem macht es unmöglich, ein sauberes und stabiles Executable auszuliefern.
Achja, und natürlich sind in den betroffenen Bereichen KEINE Änderungen vorgenommen worden, noch wirken sich sonstige Änderungen darauf aus. Soweit kenne ich das Ding ;-)

Das Delphi 5 und die Komponenten sind eigentlich sauber installiert. Das ganze läuft in einer virtuellen Maschiene, wo außer Delphi auch nix drauf ist.

Meine Frage ist nun: Hat irgendjemand eine Idee, was die Ursache dieses merkwürdigen Verhaltens sein kann? Gibt es irgendwelche Tools, mit denen man eine Diagnose gegen die IDE, oder besser die Projektdateien fahren kann? (mit anderen, kleineren Projekten habe ich keine Probleme)

Ich bin fast am Verzweifeln, weil diesen Effekten mit nichts, was ich übers Programmieren weiß, beizukommen ist...

Bernhard Geyer 18. Okt 2007 13:44

Re: Eigenleben...
 
probiers mal auf einem anderen PC. Hört sich für mich so an als würde langsam dein Rechner (RAM/CPU/Festplatte) kaputt gehen. Von der c't gibt es hin und wieder Testtools um HW-Defekten auf die Schliche zu kommen. Festplatten-Fehler sollten in der Ereignisanzeige ersichtlich sein.

mimi 20. Okt 2007 16:49

Re: Eigenleben...
 
evlt. liegt es aber auch an der VM, dein Projekt hört sich nach was Umfangreiches an.
Kann sein, das dein PC, dafür zu langsam ist......

Ganymed 1. Nov 2007 09:55

Re: Eigenleben...
 
Ihr geht also davon aus, dass es nicht direkt am Projekt liegt?

Eigentlich sollten sowohl der physikalische Rechner als auch die virtuelle Machiene (Microsoft Virtual PC 2007) genügend Ressourcen haben (2GB RAM phy/1GB virt, AMD Athlon 64 X2 DualCore 3800).
Ich hab die VM mal auf einen anderen Rechner kopiert, mit den gleichen Effekten.
Ich glaube, ich mache mir mal die Mühe, das alles neu zu installieren...

Es ist aber auch so, dass diese Probleme nur bei diesem Projekt autreten. Andere (kleinere) Projekte laufen einwandfrei und auchsonst kann man mit der VM anstandslos arbeiten.

RWarnecke 1. Nov 2007 10:01

Re: Eigenleben...
 
Zitat:

Zitat von Ganymed
... ca. 7 Jahre altes Delphi-5-Projekt mit über 400 Units ...

Das ist ja echt ein mächtiges Ding. Respekt. Ich tippe, dass sich beim Compilieren der Speicher ziemlich aufbläht und der irgendwann nichtmehr ausreicht. Wenn dann die IDE anfängt zu swappen, dass es da zu diesen merkwürdigen Verhalten kommt.

Edit :
Setze doch mal den Speicher der VM auf 1,5 GB und schaue nach ob sich das Verhalten dann verbessert.

Phoenix 1. Nov 2007 10:19

Re: Eigenleben...
 
Lösche mal alle DCU's des Projektes und erzeuge es komplett neu. Es kann ab und zu mal passieren, dass alte DCU's nicht neu erzeugt werden, obwohl es Änderungen gibt. Dann wird da irgendwelcher Code zusammengelinkt, der eigentlich nicht zusammen gehört, was zu solchem Verhalten führen kann.

mimi 1. Nov 2007 11:27

Re: Eigenleben...
 
Wenn das Projekt so groß ist, könntest du evlt. einiges in DLL'S auslagern. Das würde Zeit und Speicher beim Kompilieren mit Sicherheit sparen.

Ganymed 21. Nov 2007 07:27

Re: Eigenleben...
 
So, ich hab den ganzen Kram jetzt auf einer neuen VM komplett neu installiert. Jetzt kompiliert es wieder anstandslos.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:21 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