JOB_STACKFRAME_VANILLA stackframes in context will look as follows:
job_RunState.l -> size in bytes of below stackframe JOB_STACKFRAME_VANILLA junk entry. size in bytes of above stackframe size in bytes of below stackframe JOB_STACKFRAME_NORMAL local_variable_N ... local_variable_1 job_RunState.v -> local_variable_0 compiledFunction for this frame. programCounter for this frame. size in bytes of above stackframe
When an after{
clause completes normally, it changes
its PROTECT stackframe to a VANILLA stackframe and
then starts up the }always_do{
clause. When the
}always_do{
clause completes, it pops the
VANILLA stackframe.
(If the after{
clause does not complete normally,
something tastier than a VANILLA frame is pushed, and
when done the }ALWAYS_DO{ clause will continue
whatever activity the }ALWAYS_DO{ interrupted,
getting the needed information from the tasty stackframe,
which it eats before finishing.)
A full getStackframe[
VANILLA frame result looks like:
:owner object :kind :vanilla :junk junk
Go to the first, previous, next, last section, table of contents.