callstack_callers
Table of contents
Prototype: callstack_callers()
Return type: data
Description: Return the call stack for the current promise.
This is a call stack inspection function and the specific content may be tied to a specific CFEngine version. Using it requires writing code that takes the specific CFEngine version into account.
The returned data container is a list of key-value maps.
The maps all have a type
key and a frame
key with a counter. For different
frames along the stack frame path, the maps have additional keys:
- whenever possible,
- bodies: under key
body
the entry has a full dump of the body policy as JSON, same as whatcf-promises -p json
would produce, using the internal C functionBodyToJson()
. This may include theline
andsourcePath
to locate the exact code line. - bundles: under key
bundle
the entry has a full dump of the bundle policy as JSON, same as whatcf-promises -p json
would produce, using the internal C functionBundleToJson()
. This may include theline
andsourcePath
to locate the exact code line. - promise iteration: the
iteration_index
is recorded - promises: the
promise_type
,promiser
,promise_classes
, andpromise_comment
are recorded - promise sections (types): the
promise_type
is recorded
Example:
code
vars:
"stack" data => callstack_callers();
Output:
code
[ ... call stack information ... ,
{
"depth": 2,
"frame": 9,
"promise_classes": "any",
"promise_comment": "",
"promise_type": "methods",
"promiser": "",
"type": "promise"
}, ... more call stack information ... ]
History: Introduced in CFEngine 3.9
See also: callstack_promisers()