Transcript Appendix D
Visual Basic Debugging Tools Appendix D 7/26/2016 Dr. Monther Aldwairi 1 Outline • Debugging strategies • Error Types – Compile, Run-Time and Logical errors • VB Debugger – Breakpoints, watches and stepping through • Error Trapping • Common Errors 7/26/2016 Dr. Monther Aldwairi 2 Debugging • Errors in a program are called bugs • The process of finding and correcting them is called debugging • Debugging aims at eliminating or reducing the number of bugs in a program, thus making it behave as expected. 7/26/2016 Dr. Monther Aldwairi 3 Debugging strategies • Tracing – Putting print statement in the code to verify flow and variable values during execution – Remove print statements after the error is detected • Logfile – Text file to which a debugging trace is written – Debuggers read the log file (GDB for example) • Error Trapping and Handling – Used to trap fatal errors 7/26/2016 Dr. Monther Aldwairi 4 Preferable Debug Method • Use a debugger! • Allows you to pause during execution in order to view or alter variables 1. Setting breakpoints (to suspend program execution) 2. Defining watch values (to see current value of variables 3. Stepping into a program (executing one instruction at a time) 7/26/2016 Dr. Monther Aldwairi 5 Error Types • Compiler Errors – Syntactic, or compilation, errors occur when VB commands are written improperly. • Run-time errors – An application attempts to perform an action that the system cannot execute • Logical errors – Caused by faulty program logic. 7/26/2016 Dr. Monther Aldwairi 6 Compiler Errors • Visual Basic compiler errors occur when the compiler encounters problems in the code. • A pop up windows is displayed 7/26/2016 Dr. Monther Aldwairi 7 Run-time Errors • Visual Basic run-time errors occur when an application attempts to perform an action that the system cannot execute. 7/26/2016 Dr. Monther Aldwairi 8 Logical Errors • The program compiles and runs fine • The program does not give the expected output • General debugging strategy: 1. Place breakpoint near (preferably, slightly ahead) of suspected error source. 2. Execute program in normal fashion, until breakpoint is encountered. 3. Define one or more watch values and step through the program, one instruction at a time. 4. Follow watch values to identify location, and possibly, source, of error. 7/26/2016 Dr. Monther Aldwairi 9 Program Modes • Design – Place controls on the form, set properties and write code • Run (F5 or Start) • Break – Invoked automatically when run-time errors are encountered – By clicking the break button or Ctrl-Break 7/26/2016 Dr. Monther Aldwairi 10 Debugging Status Indicators Indicator Symbol Description Name Breakpoint Suspends program execution Current Represents the next line to Statement be executed. You can drag the current statement indicator to another line to either skip or re-execute code 7/26/2016 Dr. Monther Aldwairi 11 Debug Menu 7/26/2016 Dr. Monther Aldwairi 12 Breakpoints • Select statement, or click anywhere within statement, and set breakpoint: 1. Select Toggle Breakpoint from the Debug menu, or 2. Click on the Toggle Breakpoint button within the Debug toolbar, or 3. Press function key F9. • A dark red point to the left of a statement indicates the existence of a breakpoint. • The break in the program occurs just before the selected statement is executed. 7/26/2016 Dr. Monther Aldwairi 13 Breakpoints • To remove breakpoint use one of the three possibilities listed earlier to set a breakpoint. – To remove all break points select Clear All Breakpoints from the Debug menu, or use CtrlShift-F9 • Temporary breakpoint: click within a statement, select Run to Cursor from the Debug menu, or use Ctrl-F8. 7/26/2016 Dr. Monther Aldwairi 14 Defining watch values • Watch values are the current values of variables or expressions • There are two types of watch values: 1. Ordinary watch values: remain active as you step through the program 2. Break watches: The cause a break when True or when the values changes 7/26/2016 Dr. Monther Aldwairi 15 To define watch values 1. Select Add Watch, from the Debug menu, and enter information in the Add Watch dialog box. 2. Right-click on the Watches window, select Add Watch. 3. Highlight an expression in the Code Editor window, and select Add Watch, from the Debug menu. 4. Highlight an expression in the Code Editor window. Then, right-click and select Add Watch. 5. Shift+F9 for quick watches 7/26/2016 Dr. Monther Aldwairi 16 Adding Watches 7/26/2016 Dr. Monther Aldwairi 17 Stepping through a program • Three different types of stepping: 1. Step Into results in line-by-line stepping of current procedure and subordinated procedures. 2. Step Over results in line-by-line stepping of current procedure, bypassing subordinated procedures. 3. Step Out results in execution of all remaining statements within the current procedure, and then pauses at the first statement following the procedure access in the parent routine. • Note procedures will be discussed later in CH4 7/26/2016 Dr. Monther Aldwairi 18 Stepping through a program • To carry out line-by-line stepping do one of the following: 1. Select Step Into (or Step Over, Step Out) from the Debug menu 2. Press F8 to Step Into, Shift+F8 to Step Over, Ctrl+Shift+F8 to Step Out 3. Click on the Step Into button (or Step Over or Step Out button) on the Debug toolbar 7/26/2016 Dr. Monther Aldwairi 19 Error Trapping • We will teach you later in Chapter 8 how to trap and handle fatal errors 7/26/2016 Dr. Monther Aldwairi 20 Common Error Types # Error Type # Error Type 6 Overflow 58 File already exists 7 Out of memory 61 Disk full 9 Subscript out of range 62 Input past end of file 11 Division by zero 71 Disk not ready 13 Type mismatch 380 Invalid property value 52 Bad file name or number 382 'Item' property cannot be set at run time 52 File not found 423 Property or method not found 55 File already open 450 Wrong number of arguments 7/26/2016 Dr. Monther Aldwairi 21 Compile Errors Examples 7/26/2016 Dr. Monther Aldwairi 22 Run Time Errors 7/26/2016 Dr. Monther Aldwairi 23