![]() |
Seltsame Fehler in Delphi
Hallo,
das hier wird jetzt länger ...geht aber nicht anders. Ich habe nun schon seit über zwei Wochen Tag für Tag mit "seltsamen" Fehlern in meinem Delphi-Programm zu kämpfen. Bei dem Programm handelt es sich um eine Applikation im Bereich Computer Vision, die zum Personen Tracking mit Hilfe von zwei Kameras gedacht ist. Dabei kommen zwei externe Bibliotheken zum Einsatz: DSPack 2.3.4., um mittels Direct Show auf die beiden Kameras zuzugreifen und OpenCV Beta 4, eine OpenSource-Bibliothek - geschrieben in C - die mir diverse Algorithmen zur Bildverarbeitung bereitstellt. Mit "seltsamen" Fehlern meine ich z.B. folgendes:
Im allgemeinen habe ich festgestellt: sobald ich mein Programm etwas schlanker mache, verschwinden die "seltsamen" Fehler und das Programm verhält sich wieder ordnungsgemäß. In 2) reichte schon das Entfernen eines GUI-Elements dazu aus. Manchmal reicht es auch, irgendein Form aus dem Projekt zu entfernen (welches nie aufgerufen wird). Dieses Verhalten macht die Sache für mich sehr kompliziert. Ich bin nicht in der Lage, den Fehler zu extrahieren, d.h. das Programm soweit herunerzu-"schlanken" dass es in ein Forum passt. Desshalb kann ich hier nur allgemeine Hinweise zum Programm geben und hoffen, dass mir jemand zumindest eine grobe Richtung für die Fehlersuch weisen kann. Hier also Infos, die evtl. wichtig sein könnten:
Bin mal gespannt, was jetzt für Hinweise kommen. Bin total verzweifelt (und das ist noch untertrieben) und habe nach so langer Zeit wirklich kaum noch Lust auf Fehlersuche. Gruß, oXmoX |
Re: Seltsame Fehler in Delphi
Hi oXmoX,
ich kenne das Gefühl. Vielleicht überschreiben dir DSPACK-Routinen Teile deines Programms, weil du irgendwo Zeigervariablen übergibst, wo du Zeiger auf Zeigervariablen hättest übergeben müssen - eine beliebte Fehlerquelle beim Verbinden von Delphi-Programmen mit C-DLLs, vor der auch Profis nicht gefeit sind. Grüße vom marabu |
Re: Seltsame Fehler in Delphi
Zitat:
Danke für den Tip. |
Re: Seltsame Fehler in Delphi
Moin, moin,
also zunächstmal dürfen keine DCU´s gleichen Namens im Suchpfad sein Zwischendurch am besten mal alle löschen. Sonst hört sich das doch nach einem Pointerproblem an. Würde mal folgendes Probieren. Kopiere Dir Dein Projekt und füge der Kopie zum größer machen mal eine Riensgrafik (Bild) im Programm ein. Und jetzt nimm kritisches Formular für Formular aus dem Projekt. Pointer und Create/Destroy-Probleme zu finden ist keine einfache Geschichte... Grüße /// Martin |
Re: Seltsame Fehler in Delphi
Moin Oxmox,
ich würde es mal mit MemProof bzw. MemChk versuchen. Vielleicht lässt sich damit die Ursache finden, bzw. einkreisen. |
Re: Seltsame Fehler in Delphi
Danke für den Tip mschaefer!
Werd mal ein wenig herumbasteln. Grad eben habe ich das Start-Form durch ein neues ersetzt. Daraufhin war der Fehler natürlich weg. Als ich wieder auf das ursprüngliche Startformular geschaltet habe tauchte der Fehler auch nicht mehr auf. Auf einmal lief alles einwandfrei ...bis ich dann das Formular um einen sinnlosen Button erweitert habe. Da war der Fehler dann wieder da. Ein weitere Workaround bringt mich hier nicht weiter ...diesem Fehler habe ich jedenfalls den Krieg erklärt :twisted: . Stellt euch mal vor, ihr würdet nun schon 2 Wochen lang erfolglos versuchen soeinem Fehler auf die Spur zu kommen. Ich schätze ich hab's nicht mehr weit bis zum Irrenhaus. ...naja, keine Sorge: noch gehts mir gut ;) Gruß, oXmoX |
Re: Seltsame Fehler in Delphi
Zitat:
Gruß, oXmoX |
Re: Seltsame Fehler in Delphi
Bei mir half es schon einmal, die Reihenfolge der unter uses ... eingebundenen Units zu ändern.
mfg |
Re: Seltsame Fehler in Delphi
Dann hätte ich gleich mal noch eine Frage zum Thema Speicherbereinigung. Wie mache ich das denn bei Interfaces? Z.B. erstelle ich irgendwo ein IXMLDocument mit
Code:
Dann habe ich über das Interface eine Referenz auf ein neu erstelltes Objekt. Muss ich mich da etwa auch um die Wieder-Freigabe kümmern? Die Methode _Realease bringt irgendwie nicht den gewünschten Effekt (sag zumindest MemProof).
MyXmlDoc := NewXMLDocument;
|
Re: Seltsame Fehler in Delphi
Ich würde erwarten, dass der folgende Code keine memory leaks hinterlässt:
Delphi-Quellcode:
Grüße vom marabu
uses
MSXML2; var doc: IXMLDOMDocument; begin // OleInitialize(nil); doc := CoDomDocument.Create; doc := nil; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz