Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - wie rekursionstiefe anzeigen lassen? (stack overflow)


horsti - Fr 24.03.06 16:43
Titel: wie rekursionstiefe anzeigen lassen? (stack overflow)
hi,

ich habe eine rekursion die ein problem löst, doch manchmal funktioniert es und manchmal kommt ein stack overflow. das debuggen gestaltet sich sehr schwierig, weil es super viele aufrufe sind.
mich würde die aktelle rekursionstiefe interessieren. kann man sich die irgendwo anzeigen lassen?

ich habe bereits das fenster "aufruf-stack" gefunden, aber ist das was ich suche?


Gausi - Fr 24.03.06 16:47

Für Testzwecke würde ich sowas machen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var tiefe: integer;

procdure myRec;
begin 
  Label1.Caption := IntTostr(tiefe);
  inc(tiefe);
  myRec; // Rekursiver Aufruf
  dec(tiefe);
  Label1.Caption := IntTostr(tiefe);
end;


AXMD - Fr 24.03.06 16:47
Titel: Re: wie rekursionstiefe anzeigen lassen? (stack overflow)
user profile iconhorsti hat folgendes geschrieben:
ich habe bereits das fenster "aufruf-stack" gefunden, aber ist das was ich suche?


Dort kannst du ja sehen, wie oft sich die Funktion selbst aufgerufen hat. Anonsten kannst du ja auch eine Variable um 1 hochzählen lassen, wenn die Funktion aufgerufen wird ;)

AXMD