Debugging by thinking a multidisciplinary approach

Debugging by Thinking: A Multi-Disciplinary Approach is the first book to apply the wisdom of six disciplineslogic, mathematics, psychology, safety analysis, computer science, and engineeringto the problem of debugging. It uses the methods of literary detectives such as Sherlock Holmes, the techniqu...

Full description

Bibliographic Details
Main Author: Metzger, Robert C.
Format: eBook
Language:English
Published: Amsterdam Elsevier Digital Press 2004
Series:HP Technologies
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
Table of Contents:
  • 6.1 Preview
  • 6.2 Worldview of the mathematician
  • 6.3 Polya and mathematical heuristics
  • 6.4 Mathematical proof texts
  • 6.5 Schoenfeld and mathematical problem solving
  • 6.6 Applying Schoenfeld to debugging
  • 6.7 Review
  • Chapter 7. Debugging Strategies
  • 7.1 Preview
  • 7.2 Evaluation mechanisms
  • 7.3 Binary search strategy
  • 7.4 Greedy search strategy
  • 7.5 Breadth-first search strategy
  • 7.6 Depth-first search strategy
  • 7.7 Program slice strategy
  • 7.8 Deductive-analysis strategy
  • 7.9 Inductive-analysis strategy
  • 7.10 Choosing a strategy
  • 7.11 Review
  • Chapter 8. Debugging Heuristics
  • 8.1 Preview
  • 8.2 Stabilize the program
  • 8.3 Create a test case
  • 8.4 Reduce the required input
  • 8.5 Categorize the problem
  • 8.6 Describe the problem
  • 8.7 Explain the problem to someone else
  • 8.8 Recall a similar problem
  • 8.9 Draw a diagram
  • 8.10 Choose a hypothesis from historical data
  • 8.11 Review
  • Chapter 9. Debugging Tactics
  • 9.1 Preview
  • Includes bibliographical references (pages 539-546) and index
  • 9.2 Read the source code
  • 9.3 Write a unit test
  • 9.4 Display variable values
  • 9.5 Display execution messages
  • 9.6 Display procedure arguments
  • 9.7 Generate a flow trace
  • 9.8 Generate a variable snapshot
  • 9.9 Generate memory dump
  • 9.10 Force variable value
  • 9.11 Assert assumptions
  • 9.12 Check data structures
  • 9.13 Display data structures
  • 9.14 Use runtime subscript checking
  • 9.15 Use runtime stack checking
  • 9.16 Use runtime heap checking
  • 9.17 Initialize global variables
  • 9.18 Initialize local variables
  • 9.19 Change storage class
  • 9.20 Use a different compiler
  • 9.21 Compile to assembly code
  • 9.22 Execute on a different platform
  • 9.23 Review
  • Chapter 10. Case Studies II
  • 10.1 Case Study 2
  • 10.2 Case Study 3
  • Chapter 11. The Way of the Safety Expert
  • T$107
  • Cover
  • Debugging by Thinking: A Multidisciplinary Approach
  • Copyright Page
  • Contents
  • Preface
  • Why I Wrote This Book
  • Who Should Read This Book
  • How to Read This Book
  • Typographical and Grammatical Conventions
  • Acknowledgments
  • Permissions
  • Chapter 1. Introduction
  • 1.1 The nature of the problem
  • 1.2 The six ways of thinking
  • 1.3 The two eras of software engineering
  • 1.4 Debugging and development methodologies
  • 1.5 Review
  • Chapter 2. Sherlock Holmes
  • 2.1 Preview
  • 2.2 Worldview of the detective
  • 2.3 Detective fiction
  • 2.4 The character of Sherlock Holmes
  • 2.5 The methods of Sherlock Holmes
  • 2.6 Review
  • Chapter 3. Lord Peter Wimsey
  • 3.1 Preview
  • 3.2 The character of Lord Peter Wimsey
  • 3.3 The methods of Lord Peter Wimsey
  • 3.4 Review
  • Chapter 4. Professor Solomon
  • 4.1 Preview
  • 4.2 The methods of Professor Solomon
  • 4.3 Review
  • Chapter 5. Case Studies I
  • 5.1 Case Study I
  • Chapter 6. Mathematical Problem Solving