458 pages | 67 B/W Illus.
For today's programmers, it is impossible to foresee every input, every usage scenario, and every combination of applications that can cause errors when run simultaneously. Given all of these unknowns, writing absolutely bug-free code is unachievable. But it is possible, with the right knowledge, to produce nearly bug-free code and The Debugger's Handbook provides just the right guidance to do it.
Focused on the best practices for writing code as well as on the methods to perform more effective debugging, DiMarzio promotes a natural debugging approach to writing code. He begins by examining and concretely defining just what a bug is, what circumstances are more prone to producing bugs, and how to avoid them from the start. Rather than focusing on techniques for a specific programming language, this book offers guidance on the basic philosophies and practices that can minimize the appearance of bugs in any language. Extensive use of examples-with sample code given in VB, VB .NET, C++, and Java-reinforce a practical understanding of the concepts and offer ample opportunity to put them to use.
Working systematically through the programming steps encountered in practice, The Debugger's Handbook is the most versatile and practical guide available for minimizing errors, decreasing development time and costs, and making you a better programmer.
". . . found the book very readable and easy to understand. The detailed explanations provide great insight for the reader. I really liked the author’s ability to make the steps very easy to follow while providing meaning and understanding. Overall, I definitely recommend this book."
– Scott Brookhart, in StickyMinds.com, 2007
BUGS: FACT OR FICTION?
The History of Bugs
The Rise of the Modern Programmer
Dissecting a Bug: Definition
WRITING BUG-FREE CODE PART I: THE DESIGN PROCESS
Planning Your Bug-Free Project
BUG-FREE CODE PART II: THE CODING PROCESS
It Is All in the Comments
Comment Characters of Multiple Languages
Using .NET Regions
Functions, Subroutines, and Methods
THROWING CUSTOM EXCEPTIONS
Unstructured Error Handling
Structured Error Handling
Throwing Custom Errors
DESIGN TIME DEBUGGING
Benefits of Removing Bugs at Design Time
Debugging in Visual Studio 2003
Visual Basic Debug Mode Editing
DEBUGGING AND VISUAL STUDIO 2005
Debugging with the New Features in Visual Studio 2005
Design Time Debugging
When Is It Time to Test?
Setting Up the Test Environment
Choosing the Test Team
COMMENTING YOUR CODE WITH XML
REAL-WORLD SCENARIOS: OPENING FILES
Executing the Close Method in the Wrong Place
Other Syntactical/File Navigation Errors
REAL-WORLD SCENARIOS: READING FILES
Opening a File as the Incorrect Type
REAL-WORLD SCENARIOS: SAVING PROGRAM SETTINGS
REAL-WORLD SCENARIOS: WORKING WITH OBJECTS
Not Defining the Object Correctly
Not Being Able to See an Object from All Forms
REAL-WORLD SCENARIOS: EDITING THE REGISTRY
Using SaveSetting and GetSetting
REAL-WORLD SCENARIOS: WINDOWS TERMINATION FUNCTIONALITY
REAL-WORLD SCENARIOS: OPENING A DATABASE
Passing String Credentials
Obtaining Connection Settings from a .udl File
Using ODBC Connections
Closing a Database
REAL-WORLD SCENARIOS: READING A DATABASE
Using a DataReader
REAL-WORLD SCENARIOS: SEARCHING A DATABASE
Using Stored Procedures