[fpc-pascal] get_caller_frame

Florian Klämpfl florian at freepascal.org
Wed Nov 20 21:03:41 CET 2019

Am 20.11.19 um 07:56 schrieb Sven Barth via fpc-pascal:
> Ryan Joseph via fpc-pascal <fpc-pascal at lists.freepascal.org 
> <mailto:fpc-pascal at lists.freepascal.org>> schrieb am Mi., 20. Nov. 2019, 
> 04:36:
>     I came across get_caller_frame  in some unrelated code and I was
>     just curious about this so I wanted to ask.
>     What does get_caller_frame return exactly? Is this a pointer to a
>     stack frame that could be copied to the heap? I'm still interested
>     in how we could add some form of coroutine like behaviors to pascal
>     and so I was wondering if we could copy/restore the current stack
>     pointer so that SetJmp and LongJmp would not blow things up.
> It returns the address of the caller's frame pointer. See also 
> https://www.freepascal.org/docs-html/rtl/system/get_caller_frame.html
> It's mainly used in context of raising exceptions with the help of a 
> second function. See here: 
> https://freepascal.org/docs-html/current/ref/refse112.html#x227-24900017.1

For the record: the reliability of this function is limited, in 
particular in combination with optimization.

More information about the fpc-pascal mailing list