AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aufrufende Prozedur erkennen

Ein Thema von smudo · begonnen am 20. Sep 2005 · letzter Beitrag vom 20. Sep 2005
Antwort Antwort
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#1

Aufrufende Prozedur erkennen

  Alt 20. Sep 2005, 12:21
Hallo ,

hab mal ne dumme Frage
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é
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Aufrufende Prozedur erkennen

  Alt 20. Sep 2005, 12:25
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;
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Aufrufende Prozedur erkennen

  Alt 20. Sep 2005, 12:28
mmh, das mach ich schon, wollte mir aber gerade das ersparen.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Aufrufende Prozedur erkennen

  Alt 20. Sep 2005, 12:42
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
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#5

Re: Aufrufende Prozedur erkennen

  Alt 20. Sep 2005, 12:53
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...
HxD, schneller Hexeditor:
http://mh-nexus.de/hxd
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#6

Re: Aufrufende Prozedur erkennen

  Alt 20. Sep 2005, 12:54
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
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Aufrufende Prozedur erkennen

  Alt 20. Sep 2005, 13:30
Zitat von mael:
Hoffe das hilft.
Und wie

Vielen Dank an alle!!

René
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#8

Re: Aufrufende Prozedur erkennen

  Alt 20. Sep 2005, 13:38
Na dann wollen wir noch Madshi erwahnen http://www.madshi.net damit alle drei wesentlichen Delphi-Debug-Erweiterungen erwaehnt wurden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz