HP Guardian Errors Manual page 274

Procedure errors and messages manual
Table of Contents

Advertisement

Cause The cause of the stack overflow varies with the type of process.
In TNS or accelerated mode, a stack overflow results when one of the following problems
occurs:
The value in the TNS stack register, S, exceeds 32767. Typically, an attempt was made
to execute a procedure or subprocedure whose stack marker, sublocal data area, or local
data area extends into the upper 32K of the user data segment.
There was not enough remaining virtual data space for an operating-system procedure
to execute.
The amount of virtual data space available is the lesser of 'G'[32767] and the upper bound of
the process's virtual data area (the number of data pages specified when the process was created
or run).
Operating-system procedures require approximately 350 words of user-data stack space to execute.
NOTE:
Note If you have fewer than 32 pages of data stack, then a situation such as an infinitely
recursive TNS procedure causes a trap 0 instead of a trap 3.
In TNS/R native mode, the cause of the stack overflow is as follows:
A process running in TNS/R native mode has set the stack pointer register (SP) to point beyond
the allocated RISC stack but within the same memory region, and the process has attempted
to access a memory address between the end of the stack and the address designated by the
SP. Typically, this situation occurs when a procedure or subprocedure was called with its
activation record extending beyond the end of the RISC stack.
Effect For trap 3, process control passes to the Debug or Inspect debugger or to the trap handler
designated by a call to the ARMTRAP procedure, or else the process is abended. See
Handling" (page 271)
For the signal SIGSTK, the process abends or enters the Debug or Inspect debugger. A SIGSTK
signal cannot be delivered to a signal handler because there is no space on the stack for invoking
the handler. See
Recovery Recovery is application dependent. If the problem is infinite recursion of procedure calls,
correct the program.
For TNS processes, you can increase the size of the virtual data area with one of the following:
The TAL compiler DATAPAGES directive
The MEM parameter of the command interpreter RUN command
The memory-pages parameter of either the NEWPROCESS or PROCESS_CREATE_ procedure,
the Z^MEMORY^PAGES field of the param-list parameter of the PROCESS_LAUNCH_
procedure, or the Z^MEMORYPAGES field of the process-extension parameter of the
PROCESS_SPAWN_ procedure.
If there is simply too much data for the TNS stack segment, you can revise the program by putting
some of its global or local data into an extended data segment.
For TNS/R processes, the main stack grows dynamically as needed, up to a maximum. You can
increase the maximum when the process is created, up to a limit.
For further information about managing memory, refer to the Guardian Programmer's Guide.
SIGTIMEOUT, Trap 4
Cause The time limit specified in the latest call to SETLOOPTIMER has expired.
274 Traps and Signals
for further information.
"Signal Handling" (page 272)
Process loop-timer timeout
for further information.
"Trap

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

Guardian

Table of Contents