Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aufrufende Prozedur erkennen (https://www.delphipraxis.net/53630-aufrufende-prozedur-erkennen.html)

smudo 20. Sep 2005 11:21


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é

sniper_w 20. Sep 2005 11:25

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;

smudo 20. Sep 2005 11:28

Re: Aufrufende Prozedur erkennen
 
mmh, das mach ich schon, wollte mir aber gerade das ersparen.

generic 20. Sep 2005 11:42

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

mael 20. Sep 2005 11:53

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...

kalmi01 20. Sep 2005 11:54

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 Screenshots

smudo 20. Sep 2005 12:30

Re: Aufrufende Prozedur erkennen
 
Zitat:

Zitat von mael
Hoffe das hilft.

Und wie :hello:

Vielen Dank an alle!!

René

Robert Marquardt 20. Sep 2005 12:38

Re: Aufrufende Prozedur erkennen
 
Na dann wollen wir noch Madshi erwahnen http://www.madshi.net damit alle drei wesentlichen Delphi-Debug-Erweiterungen erwaehnt wurden.


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