You are previewing Debug It!.
O'Reilly logo
Debug It!

Book Description

Some developers thrash around aimlessly looking for a bug without concrete results. Others have the knack of unerringly zeroing in on the root cause of a bug. Are they geniuses? Just lucky? No, they've learned the secrets of professional debugging. This book will equip you with the tools, techniques and approaches-proven in the crucible of professional software development-to ensure that you can tackle any bug with confidence.

You'll learn how to handle every stage of the bug life-cycle, from constructing software that makes debugging easy, through detection, reproduction, diagnosis and rolling out your eventual fix.

Table of Contents

  1. Debug It!
    1. Copyright
    2. For the Best Reading Experience...
    3. Table of Contents
    4. What Readers Are Saying About Debug It!
    5. Preface
      1. About This Book
      2. Acknowledgments
    6. Part 1: The Heart of the Problem
      1. Chapter 1: A Method in the Madness
        1. Debugging Is More Than “Making the Bug Go Away”
        2. The Empirical Approach
        3. The Core Debugging Process
        4. First Things First
        5. Put It in Action
      2. Chapter 2: Reproduce
        1. Reproduce First, Ask Questions Later
        2. Controlling the Software
        3. Controlling the Environment
        4. Controlling Inputs
        5. Refining Your Reproduction
        6. What If You Really Can’t Reproduce It?
        7. Put It in Action
      3. Chapter 3: Diagnose
        1. Stand Back—I’m Going to Try Science
        2. Stratagems
        3. Debuggers
        4. Pitfalls
        5. Mind Games
        6. Validate Your Diagnosis
        7. Put It in Action
      4. Chapter 4: Fix
        1. Clearing the Decks
        2. Testing
        3. Fix the Cause, Not the Symptoms
        4. Refactoring
        5. Checking In
        6. Get Your Code Reviewed
        7. Put It in Action
      5. Chapter 5: Reflect
        1. How Did It Ever Work?
        2. What Went Wrong?
        3. It’ll Never Happen Again
        4. Close the Loop
        5. Put It in Action
    7. Part 2: The Bigger Picture
      1. Chapter 6: Discovering That You Have a Problem
        1. Tracking Bugs
        2. Working with Users
        3. Working with Support Staff
        4. Put It in Action
      2. Chapter 7: Pragmatic Zero Tolerance
        1. Bugs Take Priority
        2. The Debugging Mind-Set
        3. Digging Yourself Out of a Quality Hole
        4. Put It in Action
    8. Part 3: Debug-Fu
      1. Chapter 8: Special Cases
        1. Patching Existing Releases
        2. Backward Compatibility
        3. Concurrency
        4. Heisenbugs
        5. Performance Bugs
        6. Embedded Software
        7. Bugs in Third-Party Software
        8. Put It in Action
      2. Chapter 9: The Ideal Debugging Environment
        1. Automated Testing
        2. Source Control
        3. Automatic Builds
        4. Put It in Action
      3. Chapter 10: Teach Your Software to Debug Itself
        1. Assumptions and Assertions
        2. Debugging Builds
        3. Resource Leaks and Exception Handling
        4. Put It in Action
      4. Chapter 11: Anti-patterns
        1. Priority Inflation
        2. Prima Donna
        3. Maintenance Team
        4. Firefighting
        5. Rewrite
        6. No Code Ownership
        7. Black Magic
        8. Put It in Action
    9. Appendix 1: Resources
      1. Source Control and Issue-Tracking Systems
      2. Build and Continuous Integration Tools
      3. Useful Libraries
      4. Other Tools
    10. Bibliography