Sheerpower®
A Guide to the Sheerpower Language


Previous Contents Index

EXAMPLE:


 for x = 1 to 100 
 do_something 
 next x 
 
 halt
 
 routine do_something 
 a = x*2 
 end routine

When the HALT statement executes, the console window will open. Type into the console window:


 show calls 

The results displayed in the console will be:


 show calls 
---------- 
 MAIN.5 halt 
Recently Called Routines 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
: DO_SOMETHING routine do_something 
-- 

PURPOSE:

SHOW CALLS is used to display the list of recently called routines to aid in debugging a program.

DESCRIPTION:

SHOW CALLS is normally used after a HALT statement has executed. When "SHOW CALLS" is typed into the console window, the list of recently called routines will print out. Note that when the program halts, the list of recently called routines is printed to the console window immediately as well (without using the SHOW CALLS command).

2.3.7 SHOW FILES

FORMAT:


 SHOW FILES 

EXAMPLE:

To perform this example, in SPDEV open 'c:\sheerpower\samples\client_scan.spsrc' and insert a HALT statement after the end extract statement as shown below:


// Scan through vendors looking for name "kind of like" a given name. 
 
open structure vendor: name '@vendor', access outin 
 
// By default, lets look for GENEVIEVE -- so just enter in a few sample 
// letters that might be in the person's name -- like "GNVE " 
line input 'Enter part of a name', default 'gnve': scanfor$ 
scanfor$ = ucase$(scanfor$) 
total = 0 
extract structure vendor 
 include scan(vendor(name), scanfor$) > 0 
 print vendor(name); tab(30); vendor(phone);' '; vendor(city); 
 print tab(60);vendor(balance) 
 total = total + vendor(balance) 
end extract 
halt <-- insert HALT statement 
print '====================' 
print using 'Total: $#,###,###': total 
end 

Run the program by clicking on the running man icon in the SPDEV toolbar. The console window will open and display:


Enter part of a name? gnve 

Press the [Enter] key. The following will display in the console window:


DE GUZMAN, GENEVIEVE 6217239098 FALLBROOK 8591 
BURCH, GENEVIEVE 7067289429 FALLBROOK 8798 
Halt at MAIN.14 
---------- 
>>> MAIN.14 halt 

Now type in show files directly in the console window. The resulting full console window display is below:

Example 2-14 Using SHOW CALLS in DEBUG system

Enter part of a name? gnve 
DE GUZMAN, GENEVIEVE 6217239098 FALLBROOK 8591 
BURCH, GENEVIEVE 7067289429 FALLBROOK 8798 
Halt at MAIN.14 
---------- 
>>> MAIN.14 halt 
 show files
Last status: Incorrect function. (0000006C) 
channel: 000 status: 00000001 00000001 name: sys$output 
 open id: 1 flags : (t)input (t)output lock stream cancel 
 locked : 1 row : 12 col : 67 
 pagelen: 30 reclen: 2048 margin: 80 zone : 20 
 cursize: 0 read : 13 write : 55 blocks: 186 
 control: 95 rewind: 0 update: 0 delete: 0 
lun: 001 status: 00000001 00000000 name: c:\sheerpower\samples\vendor.ars 
 open id: 3 flags : input output optimized 
 locked : 0 row : 1 col : 1 
 pagelen: 0 reclen: 200 margin: 200 zone : 20 
 cursize: 8 read : 1384 write : 0 blocks: 0 
 control: 5 rewind: 1 update: 0 delete: 0 
 Current: 583 0 

PURPOSE:

Use the SHOW FILES command after a program halts to display a list of all open files and their status.

DESCRIPTION:

SHOW FILES displays a list of all open files and their status. If the files are ARS files (tables) then it some information will be displayed about their key structure, and recordsize, etc.

2.3.8 GO

FORMAT:


 GO 

EXAMPLE:

Copy/Paste or type the following example into a new file inside SPDEV. Name it 'test.spsrc'.

Example 2-15 Show files after using the HALT command

 debug on
 for i = 1 to 6 
 print i 
 if i = 4 then halt
 next i 
 end

Run the program by clicking once on the Run icon.

The following result will appear in the console window:


 1 
 2 
 3 
 4 
Halt at MAIN.0003 
-- 
Call Stack Depth: 0 
 MAIN.0003 if i = 4 then halt 
-- 
Recently Called Routines 
-- 

PURPOSE:

GO is used to continue a program after it has been interrupted.

DESCRIPTION:

GO resumes program execution after it has been interrupted. Once execution has stopped, you can enter immediate mode and debug commands, change code, check values of variables and calculations, etc. GO lets you resume execution even after changing code. If a HALT or BREAK statement was used, execution resumes at the first statement after the halt or break.

You can type in the PRINT command as shown in the example below and press [Enter]. The value will be printed out as requested. You can then type the GO command in the console window and press [Enter]. The program will then resume execution.


 1 
 2 
 3 
 4 
Halt at MAIN.0003 
-- 
Call Stack Depth: 0 
 MAIN.0003 if i = 4 then halt 
-- 
Recently Called Routines 
-- 
print sqr(i)//<---- type in this line and press [Enter]
2 
 
 
go //<---- type in 'go' and press [Enter]
5 
6 

2.4 Debug System

Sheerpower detects and announces exceptions and build errors. Sometimes errors occur which do not prevent execution, but do cause a program to execute incorrectly. Sheerpower provides a high-level DEBUG system for detecting these more subtle errors.

DEBUG ON enables Sheerpower's Debug System. DEBUG OFF disables the system.

The related function for the Sheerpower Debug System is _DEBUG. See Section 6.8.1 for information on the _DEBUG system function.

Some DEBUG features automatically switch DEBUG ON or OFF when they are executed. Others require that DEBUG be enabled. (See DEBUG ON/OFF)

Here is a list of Sheerpower's DEBUG System features that require DEBUG to be enabled:

  • TRACE ON and OFF
  • STATS ON and OFF
  • LIST STATS
  • BREAK
  • STEP

*Unlike most languages, Sheerpower's debugging environment does not noticeably slow down program execution.

DEBUG ON/OFF

2.4.1 DEBUG ON

FORMAT:


 DEBUG ON 

The following example shows how the DEBUG ON statement is used inside an .SPSRC program to enable Sheerpower's debug system.

EXAMPLE:

Example 2-16 GO command

 debug on
 print '1', 
 print '2', 
 break
 print '3', 
 print '4', 
 print '5' 
 end
 
 
 
1 2 break at main.0003 

PURPOSE:

DEBUG ON is used to enable Sheerpower's debug system. Sheerpower's debug system helps locate problems in the way a program runs.

DEBUG must be enabled in order to use its features. When DEBUG is enabled, all of Sheerpower's debug features are available.

DESCRIPTION:

DEBUG ON can be issued in immediate mode (in the console window) or as a statement in a program.

If DEBUG ON is used as a statement in a program, Sheerpower enables DEBUG when it encounters the statement. DEBUG remains enabled until a DEBUG OFF command or statement is executed or until a DEBUG feature is executed which disables it.

2.4.2 DEBUG OFF

FORMAT:


 DEBUG OFF 

EXAMPLE:


 debug off 

PURPOSE:

DEBUG OFF is used to disable Sheerpower's DEBUG system. Set DEBUG OFF when you have finished correcting your program.

DESCRIPTION:

DEBUG OFF can be issued in immediate mode or as a statement in a program. If DEBUG OFF is used in a program, Sheerpower disables DEBUG when it encounters the DEBUG OFF statement.

DEBUG will remain disabled until a DEBUG ON statement is executed, or until a DEBUG feature is executed which enables it.


AltStyle によって変換されたページ (->オリジナル) /

Example 2-17 DEBUG ON