Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet or computer – no Kindle device required. Learn more
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Debug It!: Find, Repair, and Prevent Bugs in Your Code (Pragmatic Programmers) Paperback – Illustrated, 20 Nov. 2009
Purchase options and add-ons
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.
If you develop software, sooner or later you're going to discover that it doesn't always behave as you intended. Working out why it's misbehaving can be hard. Sometimes very hard. Debug It! is here to help!
All bugs are different: there is no silver bullet. You've got to rely upon your intellect, intuition, detective skills and yes, even a little luck. But that doesn't mean that you're completely on your own-there is much you can learn from those who have gone before. This book distills decades of hard-won experience gained in the trenches of professional software development, giving you a head-start and arming you with the tools you need to get to the bottom of the problem, whatever you're faced with.
Whether you're writing Java or assembly language, targeting servers or embedded micro-controllers, using agile or traditional approaches, the same basic bug-fixing principles apply. From constructing software that is easy to debug (and incidentally less likely to contain bugs in the first place), through handling bug reports to rolling out your ultimate fix, we'll cover the entire life-cycle of a bug.
You'll learn about the empirical approach, which leverages your software's unique ability to show you what's really happening, the importance of finding a reliable and convenient means of reproducing a bug, and common pitfalls so you can avoid them. You'll see how to use commonly available tools to automatically detect problems before they're reported by customers and how to construct "transparent software" that provides access to critical information and internal state.
- ISBN-10193435628X
- ISBN-13978-1934356289
- Edition1st
- PublisherO′Reilly
- Publication date20 Nov. 2009
- LanguageEnglish
- Dimensions19.05 x 1.75 x 22.86 cm
- Print length275 pages
Product description
About the Author
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!
Product details
- Publisher : O′Reilly; 1st edition (20 Nov. 2009)
- Language : English
- Paperback : 275 pages
- ISBN-10 : 193435628X
- ISBN-13 : 978-1934356289
- Dimensions : 19.05 x 1.75 x 22.86 cm
- Best Sellers Rank: 1,268,278 in Books (See Top 100 in Books)
- 1,401 in Programming Languages & Tools
- 1,787 in Functional Programming
- 1,800 in Software Architecture
- Customer reviews:
About the author

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. 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.
Customer reviews
Customer Reviews, including Product Star Ratings, help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyses reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from United Kingdom
There was a problem filtering reviews right now. Please try again later.
There is very little else to be said - its concise (a very quick read, I breezed through it over a weekend), well written, thoughtful and educational. It formalises many common sense practises and you will probably take something new away from it. If you think that sounds like a good use of your time, then buy it.
The book is very well written, and clearly explained. It takes you through the various stages of identifying, tracking down, isolating, and fixing a bug, as well as the crucial stage (that most of us miss) of how to learn from the bug and prevent it, or similar bugs happening again.
Even after 30+ years of writing software, I found a lot to learn here. Even the bits that I already knew were worth reading as it gave a fresh and clear perspective on the subject.
Perhaps almost as important as the bug fixing section was the section on how to write software that prevents bugs, or at least catches them early in the development cycle. Some of the ideas here were obvious, some weren't, but they all added up to a methodology for making the software tell YOU where the bugs are.
Absolutely well recommended. Should be compulsory reading for anyone in the software business, whether an independent developer, or a member of a large team.
The author does this by setting out simple strategies and mindsets that when applied will lead you to not only find the bug, but shows you the correct way to fix, test and make sure it never happens again.
Preliminary chapters focus on preventive techniques and good software engineering methodology to prevent bugs happening again.
Later chapters cover specific methods and examples
In summary this book is ideal for all levels of coders as well as those responsible for the management of quality assured software.
