My Library

University LibraryCatalogue

     
Limit search to items available for borrowing or consultation
Record 7 of 8
Result Page: Previous Next
Can't find that book? Try BONUS+
 
Look for full text

Search Discovery

Search CARM Centre Catalogue

Search Trove

Add record to RefWorks

Cover Art
PRINTED BOOKS
Author Zeller, Andreas.

Title Why programs fail : a guide to systematic debugging / Andreas Zeller.

Published Amsterdam ; Boston : Elsevier, 2005.

Copies

Location Call No. Status
 UniM ERC  005.14 ZELL    AVAILABLE
Physical description xxvii, 448 pages : illustrations ; 24 cm
Bibliography Includes bibliographical references and index.
Contents 1 How Failures Come to Be 1 -- 1.1 My Program Does Not Work! 1 -- 1.2 From Defects to Failures 3 -- 1.3 Lost in Time and Space 6 -- 1.4 From Failures to Fixes 10 -- 1.5 Automated Debugging Techniques 15 -- 1.6 Bugs, Faults, or Defects? 19 -- 1.8 Tools 23 -- 2 Tracking Problems 27 -- 2.1 Oh! All These Problems 27 -- 2.2 Reporting Problems 28 -- 2.3 Managing Problems 32 -- 2.4 Classifying Problems 34 -- 2.5 Processing Problems 35 -- 2.6 Managing Problem Tracking 38 -- 2.7 Requirements as Problems 39 -- 2.8 Managing Duplicates 40 -- 2.9 Relating Problems and Fixes 42 -- 2.10 Relating Problems and Tests 44 -- 2.12 Tools 48 -- 3 Making Programs Fail 53 -- 3.1 Testing for Debugging 53 -- 3.2 Controlling the Program 55 -- 3.3 Testing at the Presentation Layer 58 -- 3.4 Testing at the Functionality Layer 63 -- 3.5 Testing at the Unit Layer 66 -- 3.6 Isolating Units 71 -- 3.7 Designing for Debugging 74 -- 3.8 Preventing Unknown Problems 77 -- 3.10 Tools 80 -- 4 Reproducing Problems 85 -- 4.1 First Task in Debugging 85 -- 4.2 Reproducing the Problem Environment 86 -- 4.3 Reproducing Program Execution 89 -- 4.4 Reproducing System Interaction 104 -- 4.5 Focusing on Units 105 -- 4.7 Tools 114 -- 5 Simplifying Problems 117 -- 5.1 Simplifying the Problem 117 -- 5.2 Gecko BugAThon 118 -- 5.3 Manual Simplification 121 -- 5.4 Automatic Simplification 123 -- 5.5 A Simplification Algorithm 125 -- 5.6 Simplifying User Interaction 132 -- 5.7 Random Input Simplified 133 -- 5.8 Simplifying Faster 134 -- 5.10 Tools 139 -- 6 Scientific Debugging 145 -- 6.1 How to Become a Debugging Guru 145 -- 6.2 Scientific Method 146 -- 6.3 Applying the Scientific Method 147 -- 6.4 Explicit Debugging 151 -- 6.5 Keeping a Logbook 153 -- 6.6 Debugging Quick-and-Dirty 154 -- 6.7 Algorithmic Debugging 155 -- 6.8 Deriving a Hypothesis 158 -- 6.9 Reasoning About Programs 161 -- 7 Deducing Errors 167 -- 7.1 Isolating Value Origins 167 -- 7.2 Understanding Control Flow 168 -- 7.3 Tracking Dependences 172 -- 7.4 Slicing Programs 178 -- 7.5 Deducing Code Smells 183 -- 7.6 Limits of Static Analysis 189 -- 7.8 Tools 194 -- 8 Observing Facts 199 -- 8.1 Observing State 199 -- 8.2 Logging Execution 200 -- 8.3 Using Debuggers 215 -- 8.4 Querying Events 225 -- 8.5 Visualizing State 230 -- 8.7 Tools 233 -- 9 Tracking Origins 243 -- 9.1 Reasoning Backwards 243 -- 9.2 Exploring Execution History 244 -- 9.3 Dynamic Slicing 246 -- 9.4 Leveraging Origins 249 -- 9.5 Tracking Down Infections 253 -- 9.7 Tools 254 -- 10 Asserting Expectations 257 -- 10.1 Automating Observation 257 -- 10.2 Basic Assertions 259 -- 10.3 Asserting Invariants 261 -- 10.4 Asserting Correctness 265 -- 10.5 Assertions as Specifications 268 -- 10.6 From Assertions to Verification 269 -- 10.7 Reference Runs 272 -- 10.8 System Assertions 275 -- 10.9 Checking Production Code 281 -- 10.11 Tools 284 -- 11 Detecting Anomalies 295 -- 11.1 Capturing Normal Behavior 295 -- 11.2 Comparing Coverage 297 -- 11.3 Statistical Debugging 302 -- 11.4 Collecting Data in the Field 303 -- 11.5 Dynamic Invariants 305 -- 11.6 Invariants on the Fly 309 -- 11.7 From Anomalies to Defects 311 -- 11.9 Tools 313 -- 12 Causes and Effects 317 -- 12.1 Causes and Alternate Worlds 317 -- 12.2 Verifying Causes 319 -- 12.3 Causality in Practice 320 -- 12.4 Finding Actual Causes 322 -- 12.5 Narrowing Down Causes 323 -- 12.6 A Narrowing Example 324 -- 12.7 Common Context 325 -- 12.8 Causes in Debugging 325 -- 13 Isolating Failure Causes 331 -- 13.1 Isolating Causes Automatically 331 -- 13.2 Isolating versus Simplifying 332 -- 13.3 An Isolation Algorithm 335 -- 13.4 Implementing Isolation 336 -- 13.5 Isolating Failure-inducing Input 340 -- 13.6 Isolating Failure-inducing Schedules 340 -- 13.7 Isolating Failure-inducing Changes 343 -- 13.8 Problems and Limitations 349 -- 13.10 Tools 352 -- 14 Isolating Cause-Effect Chains 357 -- 14.1 Useless Causes 357 -- 14.2 Capturing Program States 360 -- 14.3 Comparing Program States 364 -- 14.4 Isolating Relevant Program States 366 -- 14.5 Isolating Cause-Effect Chains 370 -- 14.6 Isolating Failure-inducing Code 375 -- 14.7 Issues and Risks 379 -- 14.9 Tools 383 -- 15 Fixing the Defect 387 -- 15.1 Locating the Defect 387 -- 15.2 Focusing on the Most Likely Errors 389 -- 15.3 Validating the Defect 391 -- 15.4 Correcting the Defect 395 -- 15.5 Workarounds 398 -- 15.6 Learning from Mistakes 399 -- Formal Definitions 407 -- A.1 Delta Debugging 407 -- A.2 Memory Graphs 411 -- A.3 Cause-Effect Chains 420.
Subject Debugging in computer science.
ISBN 1558608664