NAME
uwx_init_context() — initialize the unwind context
SYNOPSIS
#include <uwx.h>
int uwx_init_context(
struct uwx_env *env,
uint64_t ip,
uint64_t sp,
uint64_t bsp,
uint64_t cfm,
);
DESCRIPTION
uwx_init_context()
is part of the Unwind Express Library for Integrity systems; see
uwx(3X).
uwx_init_context()
provides the basic initial context as a starting
point for unwinding.
This initial context consists of the values of
ip
(instruction pointer),
sp
(stack pointer),
bsp
(backing store pointer),
and
cfm
(current frame marker).
The frame described by these values becomes the
current frame.
These values alone are not usually sufficient for a complete stack unwind,
but the unwind engine will use the
copy-in
callback routine to obtain additional context information as needed.
For self-unwinding, this entry point should not be used directly.
Instead, use
uwx_self_init_context().
Parameters
- env
A pointer to an unwind environment object.
- ip
The current instruction pointer.
- sp
The current stack pointer.
- bsp
The backing store pointer:
the address in the register stack backing store
where GR32 of the current frame would be stored
by the register stack engine.
- cfm
The current frame marker and epilog counter.
Because the unwind library tracks the epilog counter as part of the ar.pfs register,
this parameter should combine the cfm and epilog counter in the same way they
are combined in the ar.pfs register when a function call is made.
In other words, the value of
cfm | (ec << 52)
should be used as the initial
cfm.
RETURN VALUE
uwx_init_context()
returns
UWX_OK
on success.
See
uwx(3X)
for error codes.
AUTHOR
The Unwind Express Library was developed by Hewlett-Packard.
SEE ALSO
uwx(3X),
uwx_add_to_bsp(3X),
uwx_find_source_info(3X),
uwx_find_symbol(3X),
uwx_free(3X),
uwx_get_abi_context_code(3X),
uwx_get_funcstart(3X),
uwx_get_module_info(3X),
uwx_get_nat(3X),
uwx_get_reg(3X),
uwx_get_source_info(3X),
uwx_get_sym_info(3X),
uwx_init(3X),
uwx_init_context(3X),
uwx_register_alloc_cb(3X),
uwx_register_callbacks(3X),
uwx_release_symbol_cache(3X),
uwx_self_do_context_frame(3X),
uwx_self_free_info(3X),
uwx_self_init_context(3X),
uwx_self_init_info(3X),
uwx_set_nofr(3X),
uwx_set_remote(3X),
uwx_step(3X),
uwx_step_inline(3X).