Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe: Brauche Tipps für Fehlersuche (https://www.delphipraxis.net/104307-hilfe-brauche-tipps-fuer-fehlersuche.html)

D5X2 1. Dez 2007 09:23


Hilfe: Brauche Tipps für Fehlersuche
 
Hallo zusammen!

Ich arbeite mit D5 an einem relativ komplexen Projekt und habe ein Problem, bei dem ich mangels erkennbarem System nicht weiter komme:

Ich starte das Programm, rufe das erste Form auf und bekomme z.B. beim Öffnen einer Query eine Zugriffsverletzung. Ich beende das Programm, starte es direkt wieder neu, mache die gleichen Schritte und kann das Form ohne Probleme aufrufen. Dafür kommt der Fehler mal nach wenigen, mal nach vielen Form-Wechseln allerdings immer an einer anderen Stelle. Selbst bei exakt gleicher Vorgehensweise kommt der Fehler immer an einer anderen Stelle - mal sofort, mal später.

Ich vermute, es wird irgendwo an eine falsche Stelle in den Speicher geschrieben und das Programm damit durcheinander gebracht. Erstellen und Freigeben von Objekten habe ich schon mehrfach überprüft.

Bin für jeden Tipp dankbar, wie ich hier vorgehen kann.

DeddyH 1. Dez 2007 10:14

Re: Hilfe: Brauche Tipps für Fehlersuche
 
Tja, außer durchsteppen (F8) fällt mir im Moment auch nicht viel ein.

Jelly 1. Dez 2007 10:23

Re: Hilfe: Brauche Tipps für Fehlersuche
 
Verwendest du die BDE?
Hatte mal ähnliche, nicht nachvollziehbare Probleme. Bin dann von der BDE weg und die Anwendung lief tadellos.

Tyrolean 1. Dez 2007 11:05

Re: Hilfe: Brauche Tipps für Fehlersuche
 
Hallo!

Versuch es mal mit MadExcept (www.madshi.net), das sollte dir helfen den Fehler genau zu finden.

Gruß aus den Bergen
Günter

D5X2 3. Dez 2007 08:50

Re: Hilfe: Brauche Tipps für Fehlersuche
 
BDE verwende ich nicht.

Ich habe mir MadExcept mal angesehen, sieht sehr interessant aus. Was soll ich sagen, nachdem ich MadExcept in mein Projekt eingebunden habe, konnte ich den Fehler nicht mehr reproduzieren. Beseitigt das Teil auch Fehler? Ich fürchte mal nicht, trotzdem danke für den Tipp.

Grüße

peschai 3. Dez 2007 09:46

Re: Hilfe: Brauche Tipps für Fehlersuche
 
Hallo

1.)
Mach dir eine Kopie deines Sourccode und arbeite darin.
Nun Binäres Suchverfahren durch stückweises aushängen von Code.
Dazu versuch erst die andreren nicht benötigten Forms rauszuwerfen, so daß lowlevel units erhalten bleiben.
Gleiches Fehler bild ?
usw.

2.) Alle Variablen initialisiert
Lieber einmal zu viel eine Startwert zugewiesen als ewig suchen. Also suche alle Variablen welche nicht initialiert wurden.

3.) Anstelle von object.Free verwende ich IMMER FreeAndNil(object)....

4.) Alle GetMem haben passenden Freemem ... strdispose ....

5.) Siehst du daß der speicher fortläuft (Taskmanager?)

6.) Compiler strenge Prüfungen, RangeCheck, etc ...

....

hoika 3. Dez 2007 09:50

Re: Hilfe: Brauche Tipps für Fehlersuche
 
Hallo,

dann würde ich aber auf jeden Fall erst mal MadExcept wieder rausnehmen
(für das Reproduzieren).

Check mal vor dem Query-Zugriff per Assert(Query.Name='???'),
('???' mit dem richtigen Namen füllen.)
ob der Zugriff immmer noch klappt.

In einem ähnlichen Fall (komplizierter Code, verlinkte Pointer puh ...),
hatte ich mir so beholfen, dass ich eine Testroutine
(in deinem Fall mit dem betreffenden Assert) gschrieben habe,
und die Routine praktisch bei jedem fremden Code-Aufruf aufgerufen habe.

Die Test-Routine machst du public in der TForm
und erzeugst eine Form-Variable im interface-Teil (also global),
und setzt Sie im FormCreate

Form_Debug:= Self;

Dann kannst du mit

Form_Debug.DebugCheck überall darauf zugreifen.


Hat mich 1 Stunde gekostet, den Übeltäter zu finden.


Heiko

shmia 3. Dez 2007 09:58

Re: Hilfe: Brauche Tipps für Fehlersuche
 
Kennst du schon mein Tutorial Delphi Fehlersuche (Strategien & Tipps) ?
Letzte Version ist im Betrag #10.


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