Guardian Procedure Calls Reference Manual

For procedures executing in TNS/R native mode, shows the program counter (pc), virtual frame
pointer (VFP), frame pointer (FP), and stack pointer (sp), when relevant, in hexadecimal.
HF_LocLineIPF is the TNS/E equivalent for HF_LocLineRISC.
HF_LocLineRISC
The FP is used to access formal parameters and local variables of the procedure. It is typically
the stack pointer (sp). The output identifies the pointer and displays its value for any procedure
with a stack frame.
The VFP is defined as FP plus the frame offset (the size of the stack frame). Compiler-listed
variable offsets are relative to VFP.
If a larger set of RISC registers is being displayed because of the HF_Context or HF_Registers
options, the HF_LocLineRISC information is redundant and not shown.
For procedures executing in TNS or accelerated mode, shows the values of P, E, L, and S (when
available), in octal.
HF_LocLineTNS
Shows the procedure name if available. If the name exceeds 65 characters in length, it is
truncated. (To receive the full name without truncation, use HF_NameFull.) If the name is not
HF_Name
available, the action depends upon the rest of the FormatSelect field. If no other option is
set (other than HF_Parent), HIST_FORMAT_ returns 0 and nothing is formatted for display. In
this special case, you can change FormatSelect and call HIST_FORMAT_ again without
causing a HIST_BAD_FORMAT_CALL error.
If any other option is set in FormatSelect, the code address is displayed instead of the
unavailable name.
Shows the full (non-truncated) procedure name when available. The formatted output has a
continuation mark (>>) appended, if necessary, to indicate that the procedure name overflows
HF_NameFull
into the next requested output buffer. The literal HF_NameFull is defined and the option is
recognized beginning in RVUs H06.25 and J06.14; earlier versions of the operating system
ignore this option.
HF_NameFull is a variant of HF_Name; it handles an unavailable procedure name the same
way. If both options are specified, HF_NameFull takes precedence.
If the procedure name overflows the user supplied buffer space or exceeds 75 characters, the
name is split across multiple buffers: a continuation mark (>>) is inserted in the output buffer
to indicate that the name continues in the next requested output buffer. Successive calls to
HIST_FORMAT_ yield the remaining characters in the procedure name until all have been
reported.
Shows the offset from the beginning of the procedure of the current program location, if it is
available and nonzero.
HF_Offset
Shows the name of the parent procedure for any subprocedure, in addition to the subprocedure
name, in the form PROC.SUBPROC. This option is effective only if the HF_Name or HF_NameFull
option is also set. By itself, HF_Name or HF_NameFull causes only .SUBPROC to be shown.
HF_Parent
This option supports code that is displaying a single context (as from a signal handler) without
tracing the stack. In a stack trace, the parent name typically appears later in the trace.
Shows all the RISC registers for which the value is known. In general, the complete set is known
only when initiating (or continuing) a trace from a uContext structure (that is, the HIST_INIT_
HF_Registers
procedure was called with options.<13:15> set to HO_Init_uContext). Otherwise, only those
registers whose values are still known are displayed; these registers include the save registers
(s0 through s8), which are saved by the called procedure if used, the stack pointer (sp) and
program counter (pc), which revert to their original values when a procedure exits, and the
global pointer (gp), which is not changed.
These literals define combinations of other HF_* literals:
= HF_Name + HF_Offset + HF_CodeSpaceHF_base
= HF_base + HF_GapsHF_trace
= HF_trace + HF_Context + HF_Context_TNSHF_withContext
= HF_withContext + HF_RegistersHF_full
700 Guardian Procedure Calls (H-K)