Why Programs Failis about bugs
in computer programs, how to find them, how to reproduce them, and how
to fix them in such a way that they do not occur anymore. This is the
first comprehensive book on systematic debugging and covers a wide
range of tools and techniques ranging from hands-on observation to
fully automated diagnoses, and includes instructions for building
automated debuggers. This discussion is built upon a solid theory of
how failures occur, rather than relying on seat-of-the-pants
techniques, which are of little help with large software systems or to
those learning to program. The author, Andreas Zeller, is well known in
the programming community for creating the GNU Data Display Debugger
(DDD), a tool that visualizes the data structures of a program while it
is running.