HPlogo System Debug Reference Manual > Chapter 3 System Debug Interface Commands and Intrinsics

:SETDUMP Command

MPE documents

Complete PDF
Table of Contents
Index

E0201 Edition 4 ♥
E0300 Edition 3
E0692 Edition 3

Arms the Debug call that is made during abnormal process termination.

Syntax



   :SETDUMP [DB [,ST [,QS] ] [;ASCII] [;DEBUG="commands"] ]

Parameters


commands

A quoted string of system Debug commands, up to 255 characters long. If not specified, this parameter defaults to a command string that produces a dual mode stack trace and a register dump.

DB, ST, QS, ASCII

These parameters are provided for compatibility with MPE V. If specified, they are ignored.

Discussion


The :SETDUMP command enables automatic execution of a set of Debug commands when a process terminates abnormally (aborts). This command affects all processes subsequently created under the current job or session. That is, the setdump attribute and the commands parameter are inherited by any new process.

During the process abort sequence, Debug executes the commands specified in the commands parameter. Any output is sent to the process's standard list file ($STDLIST). Any commands that require input generate an error message.

If the process that aborts is being run from a job, the process terminates after executing the command string. If the process is being run from a session, after the specified command string has been executed, Debug stops to accept interactive commands with I/O performed at the user terminal, contingent upon the following requirements:
  • The abort did not occur while in system code, and

  • The process entered the abort code through a native mode interrupt. Such aborts are typically caused by arithmetic and code-related traps (see the XARITRAP and XCODETRAP intrinsics).


NOTE: CM programs usually fail these tests.

Once Debug accepts interactive input, you can enter any Debug command. You may choose to resume the process or have it terminate (refer to the CONTINUE command in chapter 4).

If the cause of the abort is a stack overflow, the command list is ignored and a stack trace is sent to $STDLIST, after which the process is terminated with no interactive debugging allowed.

Examples


The first example arms the Setdump feature. No parameters are specified, so the default command string is assumed (the default command string produces a stack trace and register dump).

   :setdump
   :

The following example also arms the Setdump feature but specifies a list of commands to be executed if the process aborts.

   :setdump ;debug="w 'Process abort at ';w pc; wl ' ' nmpath(pc)"
   :




:RESETDUMP Command


DEBUG Intrinsic