Debug Manual

Table Of Contents
Introduction
Debug Manual421921-003
1-3
Invoking Debug From TACL for a Process
PROCESS_LAUNCH_ Procedure
You can run the debugger (Inspect or Debug) on a new process by passing the debug
option bits to the PROCESS_LAUNCH_ procedure as a field in a structure, as
illustrated in this example:
<initialize structure PARMS>
. .
PARMS.NAME_OPTIONS := 2; ! Requests a system-assigned name.
PARMS.DEBUG_OPTIONS.<12> := 1; ! Debug at first instruction.
PARMS.DEBUG_OPTIONS.<14> := 1; ! Use debugger set in next bit.
PARMS.DEBUG_OPTIONS.<15> := 0; ! Selects Debug as the debugger.
ERROR := PROCESS_LAUNCH_ ( PARMS, ERROR_DETAIL );
Invoking Debug From TACL for a Process
Run a program that you want to debug through the command interpreter, in this case
the HP Tandem Advanced Command Language (TACL). While the program is
executing, press the BREAK key to wake up the TACL process; the program continues
executing. TACL returns to the command-input mode. At this point, either from the
original terminal or at another terminal, find the processor number and process
identification number (PIN) of the process (the executing program you want to debug)
by using the TACL command STATUS:
STATUS *, TERM ! from the same terminal
STATUS *, USER ! from another terminal
Then enter this command indicating the process you want to debug:
DEBUG | DEBUGNOW
specifies that the Debug facility is to start debugging the selected process. If you
do not specify a process, Debug starts debugging the process most recently
started by the TACL process if that process still exists.
DEBUG causes the specified process to enter the debug state at the next
instruction executing in unprivileged state. If the process is executing in privileged
state, it will enter debug when it next returns to unprivileged execution.
DEBUGNOW causes the specified process to enter the debug state at the next
instruction, which might be in the privileged state. DEBUGNOW can be invoked
only by the local super ID (255, 255).
Standard security requirements are applied to the user of DEBUG. A process
executing an ordinary (unlicensed) program can be put into debug state by the
user that created it, by the supervisor of that group, or by the super ID. The user
placing the process into debug must be at least as local as the one creating the
process. A process running from a program that requires licensing (one that
{ DEBUG | DEBUGNOW } [ cpu,pin | process-name ]
[,TERM [[\sys-name.]$terminal-name .[#qualifier ]]]