Debugging by Thinking: A Multi-Disciplinary Approach is the first book to apply the wisdom of six disciplines―logic, mathematics, psychology, safety analysis, computer science, and engineering―to the problem of debugging. It uses the methods of literary detectives such as Sherlock Holmes, the techniques of mathematical problem solving, the results of research into the cognitive psychology of human error, the root cause analyses of safety experts, the compiler analyses of computer science, and the processes of modern engineering to define a systematic approach to identifying and correcting software errors.
Book has a very catchy title (only 'Don't panic' written in large, friendly letters would've done the job better). Other than this the is a rather summation and it's quite dry and boring to go through ...