Forum: Object-Pascal / Delphi-Language
by Zacherl,
14. Nov 2017
Zumindest die Adresse an der die call Instruction zu deiner aktuellen Funktion steht (bzw. zeigt die ReturnAddress tatsächlich auf die nächste Instruction nach dem Call). Daraus solltest du anhand der Map-Datei aber auch den Begin und den Namen der Callers ermitteln können.
Forum: Object-Pascal / Delphi-Language
by Zacherl,
14. Nov 2017
Ja das stimmt, aber er fragt ja extra nach den vorherigen Callern:
Forum: Object-Pascal / Delphi-Language
by Zacherl,
14. Nov 2017
Reicht dir die Verwendung von StackWalk64 als "eigene" Lösung aus? Würde dir zumindest dringend raten zumindest darauf aufzubauen.
Das was du versuchst ist alles andere als trivial. Theoretisch liegen die Rücksprungadressen der vorherigen Calls ebenfalls auf dem Stack, aber das Problem ist, dass neben Parametern der eigenen Funktion (abhängig von Anzahl und Calling-Convention!) auch noch...