David A. This book explains the fundamentals of finding and fixing bugs once a bug has been detected , rather than any particular technology. This is a book I expect to find useful many, many, years from now. The entire book revolves around the "nine rules. Most importantly, there are lots of "war stories" that are both fun to read and good illustrations of how to put the rule into practice.
|Published (Last):||24 July 2019|
|PDF File Size:||12.24 Mb|
|ePub File Size:||14.30 Mb|
|Price:||Free* [*Free Regsitration Required]|
David A. This book explains the fundamentals of finding and fixing bugs once a bug has been detected , rather than any particular technology. This is a book I expect to find useful many, many, years from now.
The entire book revolves around the "nine rules. Most importantly, there are lots of "war stories" that are both fun to read and good illustrations of how to put the rule into practice. Since the whole book revolves around the nine rules, it might help to understand the book by skimming the rules and their sub-rules: Understand the system: Read the manual, read everything in depth, know the fundamentals, know the road map, understand your tools, and look up the details.
Keep an audit trail: Write down what you did in what order and what happened as a result, understand that any detail could be the important one, correlate events, understand that audit trails for design are also good for testing, and write it down!
Check the plug: Question your assumptions, start at the beginning, and test the tool. Get a fresh view: Ask for fresh insights just explaining the problem to a mannequin may help! This list by itself looks dry, but the detailed explanations and war stories make the entire book come alive. Many of the war stories jump deeply into technical details; some might find the details overwhelming, but I found that they were excellent in helping the principles come alive in a practical way.
After detailed explanations of the rules, the rest of the book has a single story showing all the rules in action, a set of "easy exercises for the reader", tips for help desks, and closing remarks. There are lots of good points here. One that particularly stands out is "quit thinking and look. Intermittent problems are usually the hardest to deal with, and the author gives straightforward advice on how to deal with them.
One odd thing is that although he mentions Heisenberg, he never mentions the term "Heisenbug" , a common jargon term in software development a Heisenbug is a bug that disappears or alters its behavior when one attempts to probe or isolate it. The back cover includes a number of endorsements, including one from somebody named Rob Malda. In particular, the website has an amusing poster of the nine rules you can download and print. The book left me wishing for more detailed suggestions about specific common technology.
This is probably unfair, since the author is trying to give timeless advice rather than a "how to use tool X" tutorial. Even after the specific tools are gone, such advice can help you use later ones.
Vendors often crow about what their tools can do, but rarely explain their weaknesses or how to apply them in a broader context. Frankly, the rules apply to many situations beyond computing, but the war stories are far too technical for the non-computer person to understand. But as you can tell, I think this is a great book.
Many sports teams know the fundamentals, but fail to consistently apply them - and fail because of it. Novices need to learn the fundamentals, and pros need occasional reminders of them; this book is a good way to learn or be reminded of them.
Get this book.
DEBUGGING DAVID J AGANS PDF
Even veteran debuggers will likely learn a thing or two. Debuggers who naturally use these rules are hard to find. The easy way and the artistic way do not find problems quickly. Buy the Book If you are interested in purchasing this book, you can support Embedded Artistry by using our Amazon affiliate link: By David J Agans My Highlights When it took us a long time to find a bug, it was because we had neglected some essential, fundamental rule; once we applied the rule, we quickly found the problem. People who excelled at quick debugging inherently understood and applied these rules.
Debugging: 9 Indispensable Rules
Understand the System Never guess or assume — Look it up! Always check for previously suspected bugs e. Know your debugging tools — what to choose, how to interpret, their limitations: Stepping-thru reveals logic flaws, but says nothing about timing issues; Profiling reveals timing bottlenecks, but says nothing about logic. Know how compiler and linker work too — how data is handled and how memory is allocated.
Summary of “Debugging” by David Agans
Recommended for any and all troubleshooters, no matter what your field. Useful and applicable methods for debugging. Jan 03, Frank rated it it was amazing. May 25, Michael rated it really liked it.