HP Fortran for OpenVMS
User Manual


Previous Contents Index

4.5 Debugger Command Summary

The following sections list all the debugger commands and any related DCL commands in functional groupings, along with brief descriptions. See the debugger's online help for complete details on commands.

During a debugging session, you can get online HELP on any command and its qualifiers by typing the HELP command followed by the name of the command in question. The HELP command has the following form:

HELP command

4.5.1 Starting and Terminating a Debugging Session

$ RUN Invokes the debugger if LINK/DEBUG was used.
$ RUN/[NO]DEBUG Controls whether the debugger is invoked when the program is executed.
DBG> Ctrl/Z or EXIT Ends a debugging session, executing all exit handlers.
DBG> QUIT Ends a debugging session without executing any exit handlers declared in the program.
DBG> Ctrl/C Aborts program execution or a debugger command without interrupting the debugging session.
  • DBG> SET
  • DBG> SHOW
ABORT_KEY
Assigns the default Ctrl/C abort function to another Ctrl-key sequence or identifies the Ctrl-key sequence currently defined for the abort function.
$ Ctrl/Y DEBUG The sequence Ctrl/Y DEBUG interrupts a program that is running without debugger control and invokes the debugger.
DBG> ATTACH Passes control of your terminal from the current process to another process (similar to the DCL command ATTACH).
DBG> SPAWN Creates a subprocess; lets you issue DCL commands without interrupting your debugging context (similar to the DCL command SPAWN).
$ DEBUG/KEEP Invokes the kept debugger, which allows certain additional commands to be used, including RUN and RERUN.
DBG> RUN image-name When using the kept debugger, runs the specified program.
DBG> RERUN When using the kept debugger, runs the last program executed again.

4.5.2 Controlling and Monitoring Program Execution

GO Starts or resumes program execution.
STEP Executes the program up to the next line, instruction, or specified instruction.
  • SET
  • SHOW
STEP
Establishes or displays the default qualifiers for the STEP command.
  • SET
  • SHOW
  • CANCEL
  • ACTIVATE
  • DEACTIVATE
BREAK
Sets, displays, cancels, activates, or deactivates breakpoints.
  • SET
  • SHOW
  • CANCEL
  • ACTIVATE
  • DEACTIVATE
TRACE
Sets, displays, cancels, activates, or deactivates tracepoints.
  • SET
  • SHOW
  • CANCEL
  • ACTIVATE
  • DEACTIVATE
WATCH
Sets, displays, cancels, activates, or deactivates watchpoints.
SHOW CALLS Identifies the currently active subroutine calls.
SHOW STACK Gives additional information about the currently active subroutine calls.
CALL Calls a subroutine.

4.5.3 Examining and Manipulating Data

EXAMINE Displays the value of a variable or the contents of a program location
SET MODE [NO]OPERANDS Controls whether the address and contents of the instruction operands are displayed when you examine an instruction.
DEPOSIT Changes the value of a variable or the contents of a program location.
EVALUATE Evaluates a language or address expression.

4.5.4 Controlling Type Selection and Symbolization

  • SET
  • SHOW
  • CANCEL
RADIX
Establishes the radix for data entry and display, displays the radix, or restores the radix.
  • SET
  • SHOW
  • CANCEL
TYPE
Establishes the type for program locations that are not associated with a compiler generated type, displays the type, or restores the type.
SET MODE [NO]G_FLOAT Controls whether double-precision floating-point constants are interpreted as G_FLOAT or D_FLOAT.

You can also use SET TYPE or EXAMINE commands to define untyped program locations, such as SET TYPE S_FLOAT, EXAMINE/T_FLOAT, or EXAMINE/X_FLOAT.

4.5.5 Controlling Symbol Lookup

SHOW SYMBOL Displays symbols in your program
  • SET
  • SHOW
MODULE
Sets a module by loading its symbol records into the debugger's symbol table, identifies a set module, or cancels a set module.
  • SET
  • SHOW
IMAGE
Sets a shareable image by loading data structures into the debugger's symbol table, identifies a set image, or cancels a set image.
SET MODE [NO]DYNAMIC Controls whether modules and shareable images are set automatically when the debugger interrupts execution.
  • SET
  • SHOW
  • CANCEL
SCOPE
Establishes, displays, or restores the scope for symbol lookup.
SET MODE [NO]LINE Controls whether code locations are displayed as line numbers or routine-name + byte offset.
SET MODE [NO]SYMBOLIC Controls whether code locations are displayed symbolically or as numeric addresses.
SYMBOLIZE Converts a virtual address to a symbolic address.

4.5.6 Displaying Source Code

TYPE Displays lines of source code.
EXAMINE/SOURCE Displays the source code at the location specified by the address expression.
  • SET
  • SHOW
  • CANCEL
SOURCE
Creates, displays, or cancels a source directory search list.
SEARCH Searches the source code for the specified string.
  • SET
  • SHOW
SEARCH
Establishes or displays the default qualifiers for the SEARCH command.
SET STEP [NO]SOURCE Enables or disables the display of source code after a STEP command has been executed or at a breakpoint, tracepoint, or watchpoint.
  • SET
  • SHOW
MAX_SOURCE_FILES
Establishes or displays the maximum number of source files that may be kept open at one time.
  • SET
  • SHOW
MARGINS
Establishes or displays the left and right margin settings for displaying source code.

4.5.7 Using Screen Mode

SET MODE [NO]SCREEN Enables or disables screen mode.
SET MODE [NO]SCROLL Controls whether an output display is updated line by line or once per command.
DISPLAY Modifies an existing display.
  • SET
  • SHOW
  • CANCEL
DISPLAY
Creates, identifies, or deletes a display.
  • SET
  • SHOW
  • CANCEL
WINDOW
Creates, identifies, or deletes a window definition.
SELECT Selects a display for a display attribute.
SHOW SELECT Identifies the displays selected for each of the display attributes.
SCROLL Scrolls a display.
SAVE Saves the current contents of a display and writes it to another display.
EXTRACT Saves a display or the current screen state and writes it to a file.
EXPAND Expands or contracts a display.
MOVE Moves a display across the screen.
  • SET
  • SHOW
TERMINAL
Establishes or displays the height and width of the screen.
  • Ctrl/W
  • DISPLAY/REFRESH
Refreshes the screen.

4.5.8 Editing Source Code

EDIT Invokes an editor during a debugging session.
  • SET
  • SHOW
EDITOR
Establishes or identifies the editor invoked by the EDIT command.

4.5.9 Defining Symbols

DEFINE Defines a symbol as an address, command, value, or process group.
DELETE Deletes symbol definitions.
  • SET
  • SHOW
DEFINE
Establishes or displays the default qualifier for the DEFINE command.
SHOW SYMBOL/DEFINED Identifies symbols that have been defined.

4.5.10 Using Keypad Mode

SET MODE [NO]KEYPAD Enables or disables keypad mode.
DEFINE/KEY Creates key definitions.
DELETE/KEY Deletes key definitions.
SET KEY Establishes the key definition state.
SHOW KEY Displays key definitions.

4.5.11 Using Command Procedures and Log Files

DECLARE Defines parameters to be passed to command procedures.
  • SET
  • SHOW
LOG
Specifies or identifies the debugger log file.
SET OUTPUT [NO]LOG Controls whether a debugging session is logged.
SET OUTPUT [NO]SCREEN_LOG Controls whether, in screen mode, the screen contents are logged as the screen is updated.
SET OUTPUT [NO]VERIFY Controls whether debugger commands are displayed as a command procedure is executed.
SHOW OUTPUT Displays the current output options established by the SET OUTPUT command.
  • SET
  • SHOW
ATSIGN
Establishes or displays the default file specification that the debugger uses to search for command procedures.
@file-spec Executes a command procedure.

4.5.12 Using Control Structures

IF Executes a list of commands conditionally.
FOR Executes a list of commands repetitively.
REPEAT Executes a list of commands repetitively.
WHILE Executes a list of commands conditionally, possibly multiple times.
EXITLOOP Exits an enclosing WHILE, REPEAT, or FOR loop.

4.5.13 Additional Commands

SET PROMPT Specifies the debugger prompt.
SET OUTPUT [NO]TERMINAL Controls whether debugger output is displayed or suppressed, except for diagnostic messages.
  • SET
  • SHOW
LANGUAGE
Establishes or displays the current language.
  • SET
  • SHOW
  • EVENT_FACILITY
Establishes or identifies the current run-time facility for language-specific events.
SHOW EXIT_HANDLERS Identifies the exit handlers declared in the program.
  • SET
  • SHOW
TASK
Modifies the tasking environment or displays task information.
  • DISABLE
  • ENABLE
  • SHOW
AST
Disables the delivery of ASTs in the program, enables the delivery of ASTs, or identifies whether delivery is enabled or disabled.
SET MODE [NO]SEPARATE Controls whether a separate window is created on a workstation for debugger input and output (this command has no effect on VT-series terminals).

For More Information:

4.6 Locating an Exception

The OpenVMS Debugger supports the SET BREAK/EXCEPTION and SET TRACE/EXCEPTION commands to set a breakpoint or tracepoint when an exception occurs. To allow precise reporting of the exception, compile the program using:

If you use the FORTRAN command qualifier /FLOAT=IEEE_FLOAT to specify IEEE floating-point (S_float and T_float) data, you can also use the /IEEE_MODE qualifier to indicate how exceptions should be handled.

For example, you might use the following commands to create the executable program:


$ FORTRAN/DEBUG/NOOPTIMIZE/FLOAT=IEEE_FLOAT/SYNCHRONOUS_EXC/CHECK=ALL TEST (1)
$ LINK/DEBUG TEST 
$ RUN TEST 
         OpenVMS DEBUG (IA64 Debug64) Version x.x-xxx
%DEBUG-I-INITIAL, language is FORTRAN, module set to SQUARES
%DEBUG-I-NOTATMAIN, enter GO to get to start of main program 
DBG> GO                                  (2)
break at routine TEST$MAIN 
     1:         REAL (KIND=4) :: A,B
DBG> SET BREAK/EXCEPTION DO (SHOW CALLS)  (3)
DBG> GO                                  (4)
%SYSTEM-F-HPARITH, high performance arithmetic trap, Imask=00000000, 
Fmask=00000002, summary=08, PC=00020050, PS=0000001B        (5)
-SYSTEM-F-FLTOVF, arithmetic trap,floating overflow at PC=00020050,PS=0000001B 
break on exception preceding TEST$MAIN\%LINE 3+20
    3:         B=A*A 
 module name     routine name                     line       rel PC    abs PC 
*TEST$MAIN       TEST$MAIN                           3      00000050  00020050 
                                                            00000130  00020130
   SHARE$DEC$FORRTL 
                                                            00000000  000B0A30 
                                                            00000130  00020130 
                                                            00000000  84F4BAD8
DBG> TYPE 1:3                           (6)
     1:         REAL (KIND=4) :: A,B
     2:         A=2.5138E20
     3:         B=A*A
DBG> EXIT
$ 

  1. The FORTRAN command line specifies qualifiers that ensure reporting of exceptions and sufficient information for debugging.
    The LINK command /DEBUG qualifier requests that debug symbol information be included in the executable image.
  2. The first debugger GO command is needed because run-time checking was requested.
  3. The debugger command SET BREAK/EXCEPTION sets a breakpoint for exceptions. If omitted, the exception is not reported.
  4. The second debugger GO command runs the program.
  5. The "%SYSTEM-F-HPARITH, high performance arithmetic trap" message indicates an exception has occurred. The "-SYSTEM-F-FLTOVF, arithmetic trap, floating overflow" message indicates the type of exception. The remaining display (requested by the SHOW CALLS command) shows the routine and line number where the error occurred.
  6. The TYPE command displays the area of source code associated with the exception.

For More Information:

4.7 Locating Unaligned Data

The OpenVMS Debugger supports the SET BREAK/UNALIGNED command to set a breakpoint when unaligned data is accessed. To allow precise reporting of the source code accessing the unaligned data, compile the program using the FORTRAN command qualifier /SYNCHRONOUS_EXCEPTIONS (Alpha only).

For example, you might use the following commands to create the executable program:


$ FORTRAN/DEBUG/NOOPTIMIZE/SYNCHRONOUS_EXCEPT INV_ALIGN (1)
$ LINK/DEBUG INV_ALIGN 
$ RUN INV_ALIGN 
         OpenVMS DEBUG (IA64 Debug64) Version x.x-xxx 
 
%DEBUG-I-INITIAL, language is FORTRAN, module set to INV_ALIGN
DBG> SET BREAK/UNALIGNED                            (2)
DBG> GO                             
Unaligned data access: virtual address = 0003000A, PC = 000200A0 (3)
break on unaligned data trap preceding INV_ALIGN\OOPS\%LINE 10
    10:       end
DBG> TYPE 7:9
      7:       subroutine oops(i4)
      8:       integer*4 i4
      9:       i4 = 1
DBG> EXIT
$ 

  1. The FORTRAN command line specifies qualifiers that ensure reporting of exceptions and sufficient information for debugging.
    The LINK command /DEBUG qualifier requests that debug symbol information be included in the executable image.
  2. The debugger command SET BREAK/UNALIGNED sets a breakpoint for unaligned data. If omitted, the unaligned data would not be reported.
  3. The "Unaligned data access" message indicate the line causing the unaligned data was just before line 10.
    The TYPE command is used to display the lines before line 10. In this case, the integer argument whose address is passed to subroutine OOPS is unaligned, resulting in the unaligned access.

For More Information:


Previous Next Contents Index