Trace CallStack Method

Hello,

I would like to use your "CallStack Method" to draw for a loop.

I'm looking for a simple way to list subfunctions.

Example:
ButtonClick > call subroutine "P1" > which calls another subroutine "P2" which calls subfunction "F3" etc. (without knowing end) and return, maint, buttonClick`)

I hope to see a solution using callStack:
ButtonClick
P1
P2
F3
....

Example
//==========================================================
// Experience Trace
//===========================================================
procedure TForm1.Button1Click(Sender: TObject);
begin
TSU.Clear; //Tstrings Util create before
P1('TestProc1');
getCallStack(tsu);
Memo1.Lines.AddStrings(tsu); //Dysplay my result
end;

procedure TForm1.P1(AVal: string);
begin
P2('Proc2');
end;

procedure TForm1.P2(AVal: string);
begin
F3('test3');
end;

function TForm1.F3(AVal: string): boolean;
begin
Result := True;
//which calls other sub-functions to work with X, Y, etc.
end;

Hello,

Apparently, the "CallStack Method" works in reverse; you need to know the final destination, which isn't necessarily the case in my situation.

Q1) Can you help me? I simply want to trace the sub-calls from an entry point, like an indefinite loop.

Q2) Ideally, I'd also like to have the timestamps in each function ?