unwind.5 (2010 09)

u
unwind(5) unwind(5)
(Itanium(R)-based Systems Only)
scratch BR0 (return link)
Value valid only after
_UNW_step() across a user space interruption such as a signal
handler.
Do not attempt to figure out the predecessor’s instruction pointer from BR0. Call
_UNW_step() to obtain the _Unwind_Context
for the predecessor’s frame and use
_UNW_getIP.
preserved BR1-BR5
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
scratch BR6-BR7
Value valid only while in state User_Interrupted_Frame after
_UNW_step() across a
user space interruption such as a signal handler.
application register FPSR
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
automatic application register
_UNW_AR_RNAT
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
preserved application register
_UNW_AR_UNAT
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
special application register
_UNW_AR_PFS
Value valid after successful return from _UNW_step and _UNW_currentContext
.
read-only application register
_UNW_AR_BSP
Value valid after successful return from _UNW_step and _UNW_currentContext
.
special application register
_UNW_AR_BSPSTORE
Value valid after successful return from _UNW_step and _UNW_currentContext
.
application register
_UNW_AR_RSC
The _UNW_AR_RSC application register is a special case. It is marked valid but not
updated during _UNW_step(), because its values are only scratch and read-only.
preserved application register
_UNW_AR_LC
Value valid after successful return from _UNW_step and _UNW_currentContext
.
scratch application register
_UNW_AR_CCV
Value valid only after _UNW_step() across a user space interruption such as a signal
handler.
Convenience value CFM
Value valid after successful return from
_UNW_step and _UNW_currentContext
.
Reminder: CFM (current frame marker) is not architecturally visible. The stack unwind
library uses the same register layout as the application register
AR.PFS for this value.
Clearing for Reinitialization
The client may call
_UNW_clear() from any states other than Bad, Start , and Stop . On successful
completion of _UNW_clear, the _Unwind_Context object appears to be in the "just constructed" con-
dition. All register values in the _Unwind_Context object are invalidated and it is placed in the Init
state.
ERROR CONDITIONS AND RECOVERY
In order to allow clients a convenient way of checking for range errors while initializing an
_Unwind_Context or for sanity checking for an error condition after several actions have been per-
formed on an _Unwind_Context object, two API functions are provided: _UNW_getAlertCode
and
_UNW_clearAlertCode.
_UNW_getAlertCode() allows the client to obtain the most recent "client needs to know"
_UNW_ReturnCode returned (or "encountered" in the case of the query functions) by an interface func-
tion since the last clear of the Alert Code.
"Client needs to know" return codes are all of the enumerators in the enumeration
_UNW_ReturnCode
with the exception of _UNW_OK.
_UNW_clearAlertCode, _UNW_clear, _UNW_createContextForSelf(), and
_UNW_createContext() each reset the Alert Code to _UNW_OK although _UNW_clear,
_UNW_createContextForSelf(), and _UNW_createContext() can set the Alert Code to
8 Hewlett-Packard Company 8 HP-UX 11i Version 3: September 2010