What is included with this book?
Paul Butcher started out writing games for 8-bit home computers before he was a teenager, and since then has worked in diverse fields at all levels of abstraction, from microcode on bit-slice processors to high-level declarative programming and all points in between. He's been using agile approaches for the last several years, although had adopted many of the same techniques before the agile movement gave them a name. Paul's depth of experience derives from a history of working for startups in which he's had the privilege of working with several great teams on cutting edge technology.
In an attempt to demonstrate that he's at least as fast as Lewis Hamilton, Paul totaled his race-car last year. So no more playing with expensive toys for the time being-but he will be back on track soon!
Preface | p. xi |
About This Book | p. xi |
Acknowledgments | p. xii |
The Heart of the Problem | p. 1 |
A Method in the Madness | p. 3 |
Debugging Is More Than "Making the Bug Go Away" | p. 3 |
The Empirical Approach | p. 5 |
The Core Debugging Process | p. 6 |
First Things First | p. 7 |
Put it in Action | p. 11 |
Reproduce | p. 13 |
Reproduce First, Ask Questions Later | p. 13 |
Controlling the Software | p. 15 |
Controlling the Environment | p. 16 |
Controlling Inputs | p. 18 |
Refining Your Reproduction | p. 26 |
What If You Really Can't Reproduce It? | p. 35 |
Put It in Action | p. 38 |
Diagnose | p. 39 |
Stand Back-I'm Going to Try Science | p. 39 |
Stratagems | p. 46 |
Debuggers | p. 52 |
Pitfalls | p. 53 |
Mind Games | p. 57 |
Validate Your Diagnosis | p. 62 |
Put it in Action | p. 63 |
Fix | p. 65 |
Clearing the Decks | p. 66 |
Testing | p. 67 |
Fix the Cause, Not the Symptoms | p. 69 |
Refactoring | p. 71 |
Checking in | p. 73 |
Get Your Code Reviewed | p. 74 |
Put it in Action | p. 75 |
Reflect | p. 77 |
How Did it Ever Work? | p. 77 |
What Went Wrong? | p. 78 |
It'll Never Happen Again | p. 81 |
Close the Loop | p. 84 |
Put it in Action | p. 85 |
The Bigger Picture | p. 87 |
Discovering That You Have a Problem | p. 89 |
Tracking Bugs | p. 89 |
Working with Users | p. 94 |
Working with Support Staff | p. 99 |
Put it in Action | p. 101 |
Pragmatic Zero Tolerance | p. 103 |
Bugs Take Priority | p. 103 |
The Debugging Mind-Set | p. 106 |
Digging Yourself Out of a Quality Hole | p. 108 |
Put it in Action | p. 113 |
Debug-Fu | p. 115 |
Special Cases | p. 117 |
Patching Existing Releases | p. 117 |
Backward Compatibility | p. 118 |
Concurrency | p. 123 |
Heisenbugs | p. 125 |
Performance Bugs | p. 127 |
Embedded Software | p. 129 |
Bugs in Third-Party Software | p. 132 |
Put it in Action | p. 137 |
The Ideal Debugging Environment | p. 139 |
Automated Testing | p. 139 |
Source Control | p. 142 |
Automatic Builds | p. 147 |
Put it in Action | p. 155 |
Teach Your Software to Debug Itself | p. 157 |
Assumptions and Assertions | p. 157 |
Debugging Builds | p. 167 |
Resource Leaks and Exception Handling | p. 172 |
Put it in Action | p. 179 |
Anti-patterns | p. 181 |
Priority Inflation | p. 181 |
Prima Donna | p. 182 |
Maintenance Team | p. 184 |
Firefighting | p. 186 |
Rewrite | p. 187 |
No Code Ownership | p. 189 |
Black Magic | p. 189 |
Put it in Action | p. 190 |
Resources | p. 193 |
Source Control and Issue-Tracking Systems | p. 193 |
Build and Continuous Integration Tools | p. 196 |
Useful Libraries | p. 198 |
Other Tools | p. 200 |
Bibliography | p. 205 |
Index | p. 207 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.