Difference between revisions of "DEBUG"

From Recital Documentation Wiki
Jump to: navigation, search
 
(2 intermediate revisions by one user not shown)
Line 18: Line 18:
  
 
{| class="wikitable"
 
{| class="wikitable"
!OPERATION||Displays one of the following DEBUG operations: STEP, BREAKPOINT or WATCHPOINT.
+
!width="30%"|OPERATION
 +
!width="70%"|Displays DEBUG operation: STEP, BREAKPOINT or WATCHPOINT.
 
|-
 
|-
 
|PROGRAM||Displays the name of the current procedure or program.
 
|PROGRAM||Displays the name of the current procedure or program.
Line 33: Line 34:
  
 
{| class="wikitable"
 
{| class="wikitable"
!BUTTON||EFFECT
+
!width="30%"|BUTTON
 +
!width="70%"|EFFECT
 
|-
 
|-
 
|Step||Step through a line at a time.
 
|Step||Step through a line at a time.
Line 91: Line 93:
  
  
Debugger directives can also be used when programs are run via the Recital Database and Mirage Servers.
+
Debugger directives can also be used when programs are run via the Recital Server.
  
  

Latest revision as of 13:33, 27 July 2010

Purpose

Monitor programs during execution


Syntax

DEBUG <program | procedure> [WITH <parameter-list>]


See Also

ASSERT, CANCEL, DEBUG(), DISPLAY BREAKPOINT, DISPLAY CALLS, DISPLAY MEMORY, DISPLAY STATUS, DISPLAY WATCHPOINT, DO, LIST BREAKPOINT, LIST CALLS, LIST WATCHPOINT, QUIT, RESUME, SET ASSERTS, SET COMPILE, SET DEVELOPMENT, SET HISTORY, SET STEP, SUSPEND


Description

The DEBUG command displays a pop-up debugger allowing the specified program to be monitored during execution.

The debugger consists of four lines of information about the current program and eighteen push buttons. Program information consists of the following lines:


OPERATION Displays DEBUG operation: STEP, BREAKPOINT or WATCHPOINT.
PROGRAM Displays the name of the current procedure or program.
LINE# Displays the current line number.
COMMAND Displays the next program line to be executed.


The eighteen push buttons are used to access information about the current environment and to specify memory variables and conditions to monitor during program execution. The pop-up debugger provides the following push buttons:


BUTTON EFFECT
Step Step through a line at a time.
Suspend Suspend the program to go to the interactive prompt, RESUME to restart.
Cancel Cancel program execution and create error.mem.
Memory Display currently declared memory variables.
Status Display currently open tables (and their indexes, current record, etc.).
Calls Show program/procedure call stack.
Watch Set a watch point. When Executing the program, execution will stop when the specified memory variable's value changes.
Break Set a break point. When Executing the program, execution will stop when the specified condition becomes true.
History Show command history trace.
Execute Run program without stepping until watch point or break point reached.
Wpclear Clear all watch points.
Bpclear Clear all break points.
Bpmark Mark the current line as a break point.
Bpdrop Clear a particular break point.
Wpdrop Clear a particular watch point.
Bpshow Show all break points.
Wpshow Show all watch points.
Quit Exit the program and debugger.


Use the [UP], [DOWN], [LEFT], and [RIGHT] arrow keys to navigate the push buttons, and press the [RETURN] key to select a button. You may also type the accelerator key to select a button. The accelerator keys are the highlighted letters in the label of each push button.

Debugger directives can also be hard-coded into program files. These are ignored in normal program execution but activated when the program runs in debug mode Debug mode is in effect when the program is called with the DEBUG command or when SET STEP is ON. Directives start with a '//' comment prefix followed by a space, the DEBUG command, a colon (':'), and the condition. The following debugger directives are available:


DIRECTIVE EFFECT
// DEBUG:BREAKPOINT Acts as if a break point has been hit when it is encountered.
// DEBUG:BREAKPOINT:<expL> Acts as if a break point has been hit when <expL> evaluates to .T. (True).
// DEBUG:WATCHPOINT:<memvar> Sets a watch point on the specified memory variable.


Debugger directives can also be used when programs are run via the Recital Server.


Example

debug main


Products

Recital Server, Recital