Ist es irgendwie möglich, bei einem Procedureaufruf in der aufgerufenen Procedure den Namen der aufrufenden Procedure zu erhalten und als string weiter zu verarbeiten.
Sollte eigentlich eine Art Logdatei werden, um den Programmablauf aufzuzeichnen, indem ich nur die entsprechende Funktion das entsprechenden Objekts aufrufe.
Momentan übergeb ich jeweils schon beim Aufruf nen String, ich hatte aber gehofft, das sich das schon weitgehend automatisieren liese,
geht schon, aber nur wenn die debugsymbole noch im executable sind. dann kannst du die benutzen um über den stack rauszukriegen was was aufgerufen hat. und für alle die jetzt gleich wieder schreien wollen das das ja viel zu aufwendig und komplex zu implementieren ist lazarus bringt implementationen mit
bp:=get_caller_frame(get_frame); //bp ist Pointer
addr:=get_caller_addr(bp);//addr auch
CurAddress:=GetLineInfo(addr,UseCache);//CurAddress ist Shortstring
in CurAddress hast jetzt den Namen der aktuellen procedure oder function
bp:=get_caller_frame(bp); holt dir die stack adresse von der aufrufenden wenn keine aufgerufende da ist, ist bp nil ansonsten kannst du das spiel von vorn anfangen und wenn du willst den ganzen stack durchrödeln.
wenn aber keine debugsymbole im executable sind bleibt CurAddress Lehr und du hast lediglich die Adresse in addr.