Die C-Funktion zeigt den ABAP-Callstack genauso an, wie er z.B. bei einem Dump in der ST22 oder bei der Anzeige des ABAP Call Stacks im Debugger angezeigt wird - mit den gleichen Fehlern z.B. bei PERFORMs (der interne Anweisungszähler zeigt schon auf die nächste ausführbare Anweisung - daher werden die falschen Quelltext-Zeilennummern angezeigt).
Methoden-Aufrufe bereiten da keine Probleme.
Natürlich muss man ein geeignetes SAP-Release mit passendem Kernel-Patch haben.
Sonst gibt es die Kernel-Function noch nicht und es kommt zu einem nicht abfangbaren Laufzeitfehler.
Oder es kommt zu 6.10 unter nicht näher beschriebenen Umständen zu einem Abbruch des Workprozesses.
(Am besten mal die passenden Hinweise im OSS suchen: ABAP_CALLSTACK als Suchbegriff, und dann die 2 Hinweise lesen, bei denen der Begriff im Kurztext vorkommt.)
Deine Vermutung
- Wird bei dem CALL-Befehl unter DEPTH die Zahl 99 angegeben, so wird die Tabelle TAB mit der gesamten Aufrufhierarchie gefüllt.
ist m.E. falsch. Wenn 99 angegeben ist, wird der Call Stack bis zu 99 Ebenen zurückgeliefert.
Um den kompletten Call Stack zu bekommen (falls es überhaupt Fälle mit mehr als 99 Ebenen gibt), muss man -1 angeben.