ME 142 Engineering Computation I Debugging Techniques
Jan 03, 2016
ME 142Engineering Computation I
Debugging Techniques
Key Concepts
Types of Program Errors Debugging Tools & Techniques Testing VBA Help Facility
Types of Programming Errors
Types of Programming Errors
Syntax Errors Run-Time Errors Logic Errors
Syntax Errors
Syntax errors occur when the rules of the programming language are violated.
Examples: Misspelling a keyword or function name Omission of necessary keywords in a command.
Run-Time Errors
Runtime errors are those errors that occur when a program free of syntax errors, runs and generates an error.
Examples: Attempting an invalid operation such as division
by zero Providing the wrong data type to a function.
Logic Errors
Logic errors are due to incorrect program logic.
The program may run without errors The results it returns are inaccurate. Often the most difficult to locate
Debugging Tools & Techniques
Debugging Tools & Techniques
MsgBox Function Debug.Print Statement Debug Mode
MsgBox Statement
Place MsgBox statement in your code as desired
Causes the value of the variables to be immediately displayed in a dialog box and pauses execution of program
Example:
MsgBox (“A = “ & A)
Debug.Print Statement
Place Debug.Print statement in your code as you would MsgBox function
Causes the value of the variables to be printed in the Immediate window
Example:
Debug.Print A,B,C
Debug.Print Statement
Debug Mode
Allows you step through your program and examine the value of variables at specific points
May step through line-by-line or set specific breakpoints
Debug Mode When a run-time error occurs may enter
Debug Mode by selecting button on dialog box that appears:
Debug Mode Once in Debug Mode
may mouse-over a variable to find its current value:
Debug Mode May also hit the F8 key to single step
through the program Each time the F8 key is hit, one line of code
is executed:
Debug Mode May also set a breakpoint by clicking in the
gray column on the left side of the line of code you want to program to pause on
Click on run (from menu above) to cause the program to resume
Debug Mode Another powerful feature
to use in conjunction with the previous techniques is the Locals Window
It displays the current value of all local variables in your program
Testing
Testing Deadly Misconception of Beginning
Programmers: If a program runs without errors, the results must
be correct Very important that before you use your
program to make engineering decisions (or turn it in to get a grade in class) that you perform a series of test to make certain that the output is correct.
Testing Suggestions
Compare your results to that of a simple, known problem by using a calculator or Excel
Test a typical range of inputs Test unusual but valid data Test extreme values
More Suggestions to Help Eradicate Program Bugs
Use VBA’s debugger tool Structure your program with indentation for loops and if
statements Keep your programs simple and small. Break up large
programs into smaller programs where appropriate. Use the Option Explicit statement at the beginning of your
modules to force you to define every variable used in your program
Use the macro recorder to help identify unfamiliar properties and methods.
VBA Help Facility
In Class Activity
Use the debugger to debug the program provided
Your result should be:
Sub cylvol()' Calculates the volume of a cylinder' Input: diameter and height' Output cylinder volume
' Input the diameter and height h = Range("B2").Value d = Range("C2").Value
' Calculate the volume vol = Pi * (d ^ 2 / 2) * h
'Round and output the volume vol = Round(vol, 2) Range("D4").Value = volume
End Sub
Review Questions
Review QuestionProgramming Errors
Which of the following is an example of a runtime error:
A. Misspelled keyword
B. Division by zero
C. Inaccurate results
D. All of the above
Review QuestionDebugging Tools & Techniques
Which debugging tool/technique gives you the greatest amount of power/flexibility in finding program bugs:
A. MsgBox Function
B. Debug.Print Statement
C. Debug Mode
Homework Help ‘n Hints