תוכן
\<bookmark_value\>debugging Basic programs\</bookmark_value\>\<bookmark_value\>Basic; debugging\</bookmark_value\>\<bookmark_value\>variables; observing values\</bookmark_value\>\<bookmark_value\>watching variables\</bookmark_value\>\<bookmark_value\>run-time errors in Basic\</bookmark_value\>\<bookmark_value\>error codes in Basic\</bookmark_value\>\<bookmark_value\>breakpoints\</bookmark_value\>\<bookmark_value\>Call Stack window\</bookmark_value\>

# Debugging a Basic Program

## Breakpoints and Single Step Execution

You can check each line in your Basic program for errors using single step execution. Errors are easily traced since you can immediately see the result of each step. A pointer in the breakpoint column of the Editor indicates the current line. You can also set a breakpoint if you want to force the program to be interrupted at a specific position.

Double-click in the \<emph\>breakpoint\</emph\> column at the left of the Editor window to toggle a breakpoint at the corresponding line. When the program reaches a breakpoint, the program execution is interrupted.

The \<emph\>single step \</emph\>execution using the \<emph\>Single Step\</emph\> icon causes the program to branch into procedures and functions.

The procedure step execution using the \<emph\>Procedure Step\</emph\> icon causes the program to skip over procedures and functions as a single step.

### Properties of a Breakpoint

The properties of a breakpoint are available through its context menu by right-clicking the breakpoint in the breakpoint column.

You can \<emph\>activate\</emph\> and \<emph\>deactivate\</emph\> a breakpoint by selecting \<emph\>Active\</emph\> from its context menu. When a breakpoint is deactivated, it does not interrupt the program execution.

Select \<emph\>Properties\</emph\> from the context menu of a breakpoint or select \<emph\>Breakpoints\</emph\> from the context menu of the breakpoint column to call the \<emph\>Breakpoints\</emph\> dialog where you can specify other breakpoint options.

The list displays all \<emph\>breakpoints\</emph\> with the corresponding line number in the source code. You can activate or deactivate a selected breakpoint by checking or clearing the \<emph\>Active\</emph\> box.

The \<emph\>Pass Count\</emph\> specifies the number of times the breakpoint can be passed over before the program is interrupted. If you enter 0 (default setting) the program is always interrupted as soon as a breakpoint is encountered.

Click \<emph\>Delete\</emph\> to remove the breakpoint from the program.

## Observing the Value of Variables

You can monitor the values of a variable by adding it to the \<emph\>Watch\</emph\> window. To add a variable to the list of watched variables, type the variable name in the \<emph\>Watch\</emph\> text box and press Enter.

The values of variables are only displayed if they are in scope. Variables that are not defined at the current source code location display ("Out of Scope") instead of a value.

You can also include arrays in the Watch window. If you enter the name of an array variable without an index value in the Watch text box, the content of the entire array is displayed.

If you rest the mouse over a predefined variable in the Editor at run-time, the content of the variable is displayed in a pop-up box.

## The Call Stack Window

Provides an overview of the call hierarchy of procedures and functions. You can determine which procedures and functions called which other procedures and functions at the current point in the source code.

## List of Run-Time Errors

1 An exception occurred

2 Syntax error

3 Return without Gosub

4 Incorrect entry; please retry

5 Invalid procedure call

6 Overflow

7 Not enough memory

8 Array already dimensioned

9 Index out of defined range

10 Duplicate definition

11 Division by zero

Variable is not available

13 Data type mismatch

14 Invalid parameter

18 Process interrupted by user

20 Resume without error

28 Not enough stack memory

35 Sub-procedure or function procedure not defined

48 Error loading DLL file

49 Wrong DLL call convention

51 Internal error

52 Invalid file name or file number

Variable is not available

54 Incorrect file mode

Variable is not available

57 Device I/O error

Variable is not available

59 Incorrect record length

61 Disk or hard drive full

62 Reading exceeds EOF

63 Incorrect record number

67 Too many files

68 Device not available

70 Access denied

Variable is not available

73 Not implemented

74 Renaming on different drives impossible

75 Path/file access error

Variable is not available

91 Object variable not set

93 Invalid string pattern

94 Use of zero not permitted

250 DDE Error

280 Awaiting response to DDE connection

281 No DDE channels available

282 No application responded to DDE connect initiation

283 Too many applications responded to DDE connect initiation

284 DDE channel locked

285 External application cannot execute DDE operation

286 Timeout while waiting for DDE response

287 user pressed ESCAPE during DDE operation

288 External application busy

289 DDE operation without data

290 Data are in wrong format

291 External application has been terminated

292 DDE connection interrupted or modified

293 DDE method invoked with no channel open

294 Invalid DDE link format

295 DDE message has been lost

296 Paste link already performed

297 Link mode cannot be set due to invalid link topic

298 DDE requires the DDEML.DLL file

323 Module cannot be loaded; invalid format

341 Invalid object index

366 Object is not available

380 Incorrect property value

382 This property is read-only

394 This property is write-only

420 Invalid object reference

423 Property or method not found

424 Object required

425 Invalid use of an object

430 OLE Automation is not supported by this object

438 This property or method is not supported by the object

440 OLE automation error

445 This action is not supported by given object

446 Named arguments are not supported by given object

447 The current locale setting is not supported by the given object

448 Named argument not found

449 Argument is not optional

450 Invalid number of arguments

451 Object is not a list

452 Invalid ordinal number

453 Specified DLL function not found

460 Invalid clipboard format

Variable is not available

Variable is not available

Variable is not available

Variable is not available

Variable is not available

956 Value cannot be applied

Variable is not available

958 Sub procedure or function procedure already defined

Variable is not available

Variable is not available

Variable is not available

Variable is not available

Variable is not available

964 Unknown data type

Variable is not available

966 Statement block still open: missing

967 Parentheses do not match

968 Symbol already defined differently

969 Parameters do not correspond to procedure

970 Invalid character in number

971 Array must be dimensioned

972 Else/Endif without If

973 not allowed within a procedure

974 not allowed outside a procedure

975 Dimension specifications do not match

976 Unknown option:

977 Constant redefined

978 Program too large

979 Strings or arrays not permitted

1000 Object does not have this property

1001 Object does not have this method

1002 Required argument lacking

1003 Invalid number of arguments

1004 Error executing a method

1005 Unable to set property

1006 Unable to determine property