Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Aufrufstack auslesen


Markus123 - Mi 31.08.05 08:08
Titel: Aufrufstack auslesen
Hallo zusammen,

ein gutes altes Thema, zu dem auch schon einiges geschrieben wurde, aber eben nicht alles :-)

Es geht um den Aufrufstack. Ich möchte in meiner Anwendung an bestimmten Stellen den Aufrufstack in eine Datei speichern. Aber nicht - wie bei vielen, vielen Ansätzen - wenn eine Exception der Auslöser war, sondern einfach im laufenden Programm.

In der IDE ist das kein Problem: Haltepunkt setzen und dann den Aufrufstack anschauen.

Aber: Was tun in der Anwendung an sich? Habt ihr zufällig einen Ansatz oder zumindest ein paar Schlagwörter?

Danke für eure Hilfe,
Markus

PS: Zum Einsatz kommt Windows (2000, XP) und Delphi 4.


Moderiert von user profile iconraziel: Topic aus Sonstiges verschoben am Di 04.10.2005 um 09:49


Martin1966 - Do 29.09.05 14:13

Etwas spät eine Antwort... aber egal. ;-)

Schau dir mal die Unit JCLDebug.pas [http://cvs.sourceforge.net/viewcvs.py/jcl/jcl/source/windows/JclDebug.pas?rev=1.20&view=auto] an. Ich glaube dort müsste es entsprechenden Funktionen/Klassen geben (ProcByLevel).

Lg Martin


Markus123 - Di 04.10.05 06:56

Danke - schaut sehr vielversprechend aus...

Grüße,
Markus


Martin1966 - Di 04.10.05 07:01

Es wäre schön zu wissen ob und wie genau es funktioniert hat. ;-) Wäre also nett wenn Du Deine Ergebnisse hier veröffentlichen würdest. ;-) Danke!

Lg Martin


BenBE - Di 04.10.05 08:21

In der Datei ODbgMapfile.pas [http://viewcvs.omorphia.de/omorphia/library/source/ODbgMapfile.pas] fürdas Projekt Omorphia [http://www.omorphia.de/] haben wir eine entsprechende Routine drin, die genau das gleiche wie die JCLDebug.pas auch kann. Ist aber ATM nur Proof-of-Work, keine stable.


Markus123 - Di 04.10.05 08:35

user profile iconMartin1966 hat folgendes geschrieben:
Es wäre schön zu wissen ob und wie genau es funktioniert hat. ;-) Wäre also nett wenn Du Deine Ergebnisse hier veröffentlichen würdest. ;-) Danke!


Bin leider erst heute wieder aus dem Urlaub zurück und habe folglich nur einen Blick darauf geworfen. Ich werde aber bescheid geben ;-)

Grüße,
Markus