Effective Debugging 66 Specific Ways to Debug Software and Systems

  • ISBN13:


  • ISBN10:


  • Edition: 1st
  • Format: Paperback
  • Copyright: 7/1/2016
  • Publisher: Addison-Wesley Professional

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping On Orders Over $59!
    Your order must be $59 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $39.99 Save up to $14.00
  • Rent Book $25.99
    Add to Cart Free Shipping


Supplemental Materials

What is included with this book?

  • 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 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.


Every software developer and IT professional understands the crucial importance of effective debugging. Often, debugging consumes most of a developer’s workday, and mastering the required techniques and skills can take a lifetime. In Effective Debugging, Diomidis Spinellis helps experienced programmers accelerate their journey to mastery, by systematically categorizing, explaining, and illustrating the most useful debugging methods, strategies, techniques, and tools.


Drawing on more than thirty-five years of experience, Spinellis expands your arsenal of debugging techniques, helping you choose the best approaches for each challenge. He presents vendor-neutral, example-rich advice on general principles, high-level strategies, concrete techniques, high-efficiency tools, creative tricks, and the behavioral traits associated with effective debugging.


Spinellis’s 66 expert techniques address every facet of debugging and are illustrated with step-by-step instructions and actual code. He addresses the full spectrum of problems that can arise in modern software systems, especially problems caused by complex interactions among components and services running on hosts scattered around the planet. Whether you’re debugging isolated runtime errors or catastrophic enterprise system failures, this guide will help you get the job done—more quickly, and with less pain.


Key features include

  • High-level strategies and methods for addressing diverse software failures
  • Specific techniques to apply when programming, compiling, and running code
  • Better ways to make the most of your debugger
  • General-purpose skills and tools worth investing in
  • Advanced ideas and techniques for escaping dead-ends and the maze of complexity
  • Advice for making programs easier to debug
  • Specialized approaches for debugging multithreaded, asynchronous, and embedded code
  • Bug avoidance through improved software design, construction, and management

Author Biography

Diomidis Spinellis is a professor in the Department of Management Science and Technology at the Athens University of Economics and Business in Greece. His research interests include software engineering, IT security, and programming languages. He has written two award-winning, widely translated books, Code Reading (2003) and Code Quality (2006), both published by Addison-Wesley. He served for a decade as a member of the IEEE Software editorial board, authoring the “Tools of the Trade” column, and since January 2015 is serving as the editor-in-chief. He has contributed code that ships with OS X and BSD Unix, and is the developer of UMLGraph, CScout, and other open-source software packages, libraries, and tools. He holds an MEng in software engineering and a PhD in computer science, both from Imperial College London. Dr. Spinellis is a senior member of the ACM and the IEEE.

Table of Contents

1. General Purpose Methods and Tools
2. Debugger Techniques
3. Manual Techniques
4. Compile-Time Techniques
5. Programming Techniques
6. High-Level Strategies
7. Command-Line Tools and Techniques
8. Runtime Techniques
9. Techniques for Multithreaded, Asynchronous, and Embedded Device Code

Rewards Program

Write a Review