unwind.5 (2010 09)

u
unwind(5) unwind(5)
(Itanium(R)-based Systems Only)
The Current Frame Marker (CFM). See _UNW_setCFM (3X).
Stacked general registers in the snapshot procedure’s frame as defined by the Current Frame
Marker. See previous bullet and _UNW_setCFM (3X).
Stepping
Once initialization of the
_Unwind_Context
is complete, it now represents the snapshot procedure’s
processor state. The client may call
_UNW_step(), which modifies
_Unwind_Context
to represent
the predecessor’s processor state. See _UNW_step (3X).
Queries
Querying register values by the client is allowed during all states. Returned values are guaranteed valid
only after certain actions, however, as described below. Reading a register which is uninitialized or
marked invalid returns a value equivalent to zero (0.0 for floating point registers,
_UNW_FALSE from the
enumeration
_UNW_Boolean for Predicates) and sets
_Unwind_Context
’s AlertCode to
_UNW_QUERY_INVALID_ERROR
. See ERROR CONDITIONS AND RECOVERY. Requesting a Gen-
eral, Floating Point, Branch, Application, or Predicate register by number outside the documented ranges
returns a value equivalent to zero and sets the
_Unwind_Context’s AlertCode to
_UNW_QUERY_RANGE_ERROR
.
The following list indicates after which API calls specific register values are valid. This "validity list"
does not cover the Initialization phase (that is, when the stack unwind library is in state Init )during
which only those values which the client has initialized are valid. The registers are listed by their regis-
ter classes as defined in Chapter 5 of Itanium Processor Family Software Conventions and Runtime
Architecture .
constant GR0
Value valid always.
special GR1 (global pointer)
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
scratch GR2-GR3, GR8-11 and GR14-GR31
Value valid only after
_UNW_step() across a user space interruption such as a signal
handler.
preserved GR4-GR7
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
special GR12 (stack pointer)
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
special GR13 (thread pointer)
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
stacked GR32-127 (automatic RSE registers)
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
Note: only those values existing in the current frame (as depicted by the CFM value) are
valid. Alert code
_UNW_QUERY_RANGE_ERROR is set when values outside of the
current frame are queried.
constant FR0 and FR1
Value valid always.
preserved FR2-FR5 and FR16-FR31
Value valid after successful return from
_UNW_step and _UNW_currentContext.
scratch FR6-FR15 and FR32-FR127
Value valid only while in state User_Interrupted_Frame after
_UNW_step()
across a
user space interruption such as a signal handler.
constant P0
Value valid always.
preserved PR1-PR5 and PR16-PR63
Value valid after successful return from
_UNW_step and _UNW_currentContext.
scratch PR6-PR15
Value valid only while in state User_Interrupted_Frame after
_UNW_step() across a
user space interruption such as a signal handler.
HP-UX 11i Version 3: September 2010 7 Hewlett-Packard Company 7