![]() |
Aufrufende Prozedur erkennen
Hallo :hi: ,
hab mal ne dumme Frage :oops: Für das Loggen ist es interessant, welche Prozedur wann aufgerufen wird. Ist es möglich in einer Prozedur zu ermitteln, von welcher Funktion/Prozedur diese aufgerufen wurde? Danke René |
Re: Aufrufende Prozedur erkennen
Du könntest einen Parameter von Typ String übergeben, wo der Name der aufrufende Procedur steht.
Delphi-Quellcode:
procedure Caller();
begin called('Caller'); end; procedure Called(const param:string); begin // end; |
Re: Aufrufende Prozedur erkennen
mmh, das mach ich schon, wollte mir aber gerade das ersparen.
|
Re: Aufrufende Prozedur erkennen
schau doch auf dem stack nach. dort liegt die rücksprung addresse.
diese kannst du gegen eine map datei parsen und du hast den funktionsnamen. so macht das z.b. die jcl debug bzw das jedi exception window |
Re: Aufrufende Prozedur erkennen
Die JCL bietet interessante Möglichkeiten mit der Unit JclDebug:
Sie hat die Funktion function Caller(Level: Integer = 0; FastStackWalk: Boolean = False): Pointer; Level = 0 bedeutet die aktuell aufgerufene Prodzedur, Level 1 den Aufrufer, Level 2 den Aufrufer des Aufrufers, ... GetLocationInfo(addr) gibt dann alle interessanten Informationen zurück wie UnitName, ProzedureName, Zeilennummer, Spaltennummer usw. Hoffe das hilft. P.S.: habe gerade gesehen, daß generic schon was in die Richtung geschrieben hat... |
Re: Aufrufende Prozedur erkennen
Hi smudo,
oder Du probierst doch mal EurekaLog aus. Die Trial würde Dir doch schon reichen und 99€ sind auch nicht die Welt, anstatt tagelang ein Prog zu debuggen. Da steht wirklich alles drin, was Du suchst ![]() |
Re: Aufrufende Prozedur erkennen
Zitat:
Vielen Dank an alle!! René |
Re: Aufrufende Prozedur erkennen
Na dann wollen wir noch Madshi erwahnen
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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