Einzelnen Beitrag anzeigen

a.def
(Gast)

n/a Beiträge
 
#13

AW: Close; im TTimer lässt Programm manchmal abschmieren

  Alt 24. Nov 2016, 15:21
-Warum ist der Post nach dem Bearbeiten hier plötzlich doppelt?-


Zitat:
* siehe Cursorposition/Markierung im Quellcode
* siehe Stacktrace
Die Cursorposition im Code wird beim Werfen einer Exception nicht verändert.

Der Fehler tritt wohl hier auf. Er tritt manchmal auf aber nicht immer:
- Classes.pas
Delphi-Quellcode:
procedure TList.Delete(Index: Integer);
var
  Temp: Pointer;
begin
  if (Index < 0) or (Index >= FCount) then // <==
// ...
Ich werde mal meine Listen überprüfen.

Beim Beenden der Anwendung gibt es aber keine Speicherlecks.


-------------


Ich glaube den Fehler jetzt mit dem Debugger gefunden zu haben.
Ich werde jetzt für etwa eine Stunde Tests durchführen und dann Feierabend machen.
Ich melde mich dann hier im selben Beitrag zurück.


-------------


112 automatisierte Tests am Stück später. Ich denke ich kann sagen, dass der Fehler behoben ist.
Es war nicht das Close-Event und auch kein Timer. Hier wurde ich vom System auf die falsche Spur geschickt.

Es war einfach nur eine TList, aus welcher doppelt Items gelöscht wurden.
Dass das aber in einem APPCRASH resultiert und nicht in einer normalen Exception, war ein bisschen seltsam.

Geändert von a.def (24. Nov 2016 um 17:27 Uhr)
  Mit Zitat antworten Zitat