[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