Why Programs Fail, 2nd Edition
- Length: 424 pages
- Edition: 2
- Language: English
- Publisher: Morgan Kaufmann
- Publication Date: 2009-06-26
- ISBN-10: 0123745152
- ISBN-13: 9780123745156
- Sales Rank: #542742 (See Top 100 Books)
This fully updated second edition includes 100+ pages of new material, including new chapters on Verifying Code, Predicting Errors, and Preventing Errors. Cutting-edge tools such as FindBUGS and AGITAR are explained, techniques from integrated environments like Jazz.net are highlighted, and all-new demos with ESC/Java and Spec#, Eclipse and Mozilla are included.
This complete and pragmatic overview of debugging is authored by Andreas Zeller, the talented researcher who developed the GNU Data Display Debugger(DDD), a tool that over 250,000 professionals use to visualize the data structures of programs while they are running. Unlike other books on debugging, Zeller’s text is product agnostic, appropriate for all programming languages and skill levels.
Why Programs Fail explains best practices ranging from systematically tracking error reports, to observing symptoms, reproducing errors, and correcting defects. It covers a wide range of tools and techniques from hands-on observation to fully automated diagnoses, and also explores the author’s innovative techniques for isolating minimal input to reproduce an error and for tracking cause and effect through a program. It even includes instructions on how to create automated debugging tools.
- The new edition of this award-winning productivity-booster is for any developer who has ever been frustrated by elusive bugs.
- Brand new chapters demonstrate cutting-edge debugging techniques and tools, enabling readers to put the latest time-saving developments to work for them.
- Learn by doing. New exercises and detailed examples focus on emerging tools, languages and environments, including AGITAR, FindBUGS, Python and Eclipse.
- The text includes exercises and extensive references for further study, and a companion website with source code for all examples and additional debugging resources.
Table of Contents
Chapter 1. How Failures Come to Be
Chapter 2. Tracking Problems
Chapter 3. Making Programs Fail
Chapter 4. Reproducing Problems
Chapter 5. Simplifying Problems
Chapter 6. Scientific Debugging
Chapter 7. Deducing Errors
Chapter 8. Observing Facts
Chapter 9. Tracking Origins
Chapter 10. Asserting Expectations
Chapter 11. Detecting Anomalies
Chapter 12. Causes and Effects
Chapter 13. Isolating Failure Causes
Chapter 14. Isolating Cause–Effect Chains
Chapter 15. Fixing the Defect
Chapter 16. Learning from Mistakes