Skip to main content

Debugging Example

The example below sets a breakpoint right before the Compute procedure of the RightTriangle routine (from the beginning of this tutorial). The “L+” will cause a break before every line of the routine, even within the called Compute procedure.

SAMPLES>zbreak RightTriangle+20^RightTriangle:"L+"

SAMPLES>d ^RightTriangle

Compute the area and hypotenuse of a right triangle
given the lengths of its two sides.

First, choose a unit of measurement. 
(i)nches, (f)eet, (m)iles, (c)entimeters, m(e)ters, (k)ilometers: f

Length of side 1: 4  Accepted.
Length of side 2: 5  Accepted.
 quit:(side2 = "")  // exit the routine
 ^
<BREAK>RightTriangle+21^RightTriangle
SAMPLES 2d0>g  ; continue execution

 do Compute( units, side1, side2)
 ^
<BREAK>RightTriangle+22^RightTriangle
SAMPLES 2d0>write side2
5
SAMPLES 2d0>g

 { set area  = ( A * B ) / 2, 
   ^
       area = $justify( area, 0, 2),
       squaredSides = ( A ** 2 ) + ( B ** 2 ) 
<BREAK>IsNegative+11^RightTriangle
SAMPLES 3d1>write B
5
SAMPLES 3d1>g

   set hypot = $zsqr(squaredSides)
   ^
<BREAK>IsNegative+14^RightTriangle
SAMPLES 3d1>g

   set hypot = $justify( hypot, 0, 2)   // round hypot to 2 places
   ^
<BREAK>IsNegative+15^RightTriangle
SAMPLES 3d1>write hypot
6.403124237432848685
SAMPLES 3d1>b "C"  ; cancel the stepping within Compute

SAMPLES 3d1>g


The area of this triangle is 10.00 square feet.

The hypotenuse is 6.40 feet.
 write !!, "Current date: "
 ^
<BREAK>RightTriangle+23^RightTriangle
SAMPLES 2d0>b "L"  ; don't step into %D or %T

SAMPLES 2d0>g


Current date: 
 do ^%D
 ^
<BREAK>RightTriangle+24^RightTriangle
SAMPLES 2d0>g
Feb 25 2011
 write !, "Current time:"
 ^
<BREAK>RightTriangle+25^RightTriangle
SAMPLES 2d0>g

Current time:
 do ^%T
 ^
<BREAK>RightTriangle+26^RightTriangle
SAMPLES 2d0>g
 6:10 PM
 quit
 ^
<BREAK>RightTriangle+27^RightTriangle
SAMPLES 2d0>g

SAMPLES>
FeedbackOpens in a new tab