Why programs fail: A guide to systematic debugging
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Amsterdam [u.a.]
Elsevier
2006
Heidelberg dpunkt.Verl. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | XXVIII, 448 S. Ill. |
ISBN: | 9781558608665 3898642798 1558608664 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV020876539 | ||
003 | DE-604 | ||
005 | 20061027 | ||
007 | t | ||
008 | 051118s2006 gw a||| |||| 00||| eng d | ||
015 | |a 05,N26,0055 |2 dnb | ||
016 | 7 | |a 975139134 |2 DE-101 | |
020 | |a 9781558608665 |9 978-1-55860-866-5 | ||
020 | |a 3898642798 |9 3-89864-279-8 | ||
020 | |a 1558608664 |9 1-55860-866-4 | ||
024 | 3 | |a 9783898642798 | |
035 | |a (OCoLC)254695438 | ||
035 | |a (DE-599)BVBBV020876539 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
044 | |a gw |c XA-DE-BW | ||
049 | |a DE-898 |a DE-573 |a DE-703 |a DE-824 |a DE-Aug4 |a DE-92 |a DE-83 |a DE-11 | ||
050 | 0 | |a QA76.9.D43 | |
082 | 0 | |a 005.1/4 |2 22 | |
084 | |a ST 233 |0 (DE-625)143620: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Zeller, Andreas |e Verfasser |4 aut | |
245 | 1 | 0 | |a Why programs fail |b A guide to systematic debugging |c Andreas Zeller |
264 | 1 | |a Amsterdam [u.a.] |b Elsevier |c 2006 | |
264 | 1 | |a Heidelberg |b dpunkt.Verl. | |
300 | |a XXVIII, 448 S. |b Ill. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Débogage | |
650 | 7 | |a Engenharia de software |2 larpcal | |
650 | 4 | |a Debugging in computer science | |
650 | 0 | 7 | |a Debugging |0 (DE-588)4148954-8 |2 gnd |9 rswk-swf |
655 | 7 | |8 1\p |0 (DE-588)4123623-3 |a Lehrbuch |2 gnd-content | |
689 | 0 | 0 | |a Debugging |0 (DE-588)4148954-8 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=2642807&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014198213&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-014198213 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
_version_ | 1804134605944520704 |
---|---|
adam_text | CONTENTS
Foreword xix
Preface xxi
1 How Failures Come to Be l
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.7 Concepts 21
1.8 Tools 23
1.9 Further Reading 23
1.10 Exercises 24
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.4.1 Severity 34
2.4.2 Priority 35
2.4.3 Identifier 35
2.4.4 Comments 35
2.4.5 Notification 35
2.5 Processing Problems 35
Contents
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.11 Concepts 46
2.12 Tools 48
BUGZILLA 48
PHPBUGTRACKER 49
ISSUETRACKER 49
TRAC 49
SOURCEFORGE 49
GFORGE 50
2.13 Further Reading 50
2.14 Exercises 51
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.3.1 Low level Interaction 58
3.3.2 System level Interaction 60
3.3.3 Higher level Interaction 61
3.3.4 Assessing Test Results 62
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.9 Concepts 79
3.10 Tools 80
JUNIT 80
ANDROID 81
APPLESCRIPT 81
VBSCRIPT 81
Other scripting languages 81
FAU 81
VMWare 82
Virtual PC 82
Contents
3.11 Further Reading 82
3.12 Exercises 83
4 Reproducing Problems 85
4.1 The First Task in Debugging 85
4.2 Reproducing the Problem Environment 86
4.3 Reproducing Program Execution 89
4.3.1 Reproducing Data 91
4.3.2 Reproducing User Interaction 92
4.3.3 Reproducing Communications 94
4.3.4 Reproducing Time 95
4.3.5 Reproducing Randomness 96
4.3.6 Reproducing Operating Environments 96
4.3.7 Reproducing Schedules 99
4.3.8 Physical Influences 101
4.3.9 Effects of Debugging Tools 102
4.4 Reproducing System Interaction 104
4.5 Focusing on Units 105
4.5.1 Setting Up a Control Layer 105
4.5.2 A Control Example 106
4.5.3 Mock Objects 109
4.5.4 Controlling More Interaction 112
4.6 Concepts 112
4.7 Tools 114
WlNRUNNER 114
Android 114
Revirt 114
Checkpointing Tools 114
4.8 Further Reading 114
4.9 Exercises 115
5 Simplifying Problems 117
5.1 Simplifying the Problem 117
5.2 The 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
Contents
5.8 Simplifying Faster 134
5.8.1 Caching 134
5.8.2 Stop Early 134
5.8.3 Syntactic Simplification 135
5.8.4 Isolate Differences, Not Circumstances 137
5.9 Concepts 138
5.10 Tools 139
Delta Debugging 139
Simplification Library 139
5.11 Further Reading 139
5.12 Exercises 140
6 Scientific Debugging 145
6.1 How to Become a Debugging Guru 145
6.2 The Scientific Method 146
6.3 Applying the Scientific Method 147
6.3.1 Debugging sample — Preparation 149
6.3.2 Debugging sample — Hypothesis 1 149
6.3.3 Debugging sample — Hypothesis 2 150
6.3.4 Debugging sample — Hypothesis 3 150
6.3.5 Debugging sample — Hypothesis 4 150
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
6.10 Concepts 163
6.11 Further Reading 164
6.12 Exercises 165
7 Deducing Errors 167
7.1 Isolating Value Origins 167
7.2 Understanding Control Flow 168
7.3 Tracking Dependences 172
7.3.1 Effects of Statements 172
7.3.2 Affected Statements 174
7.3.3 Statement Dependences 175
Contents
7.3.4 Following Dependences 177
7.3.5 Leveraging Dependences 177
7.4 Slicing Programs 178
7.4.1 Forward Slices 179
7.4.2 Backward Slices 179
7.4.3 Slice Operations 180
7.4.4 Leveraging Slices 182
7.4.5 Executable Slices 182
7.5 Deducing Code Smells 183
7.6 Limits of Static Analysis 189
7.7 Concepts 193
7.8 Tools 194
CODESURFER 194
FINDBUGS 194
7.9 Further Reading 194
7.10 Exercises 195
8 Observing Facts 199
8.1 Observing State 199
8.2 Logging Execution 200
8.2.1 Logging Functions 202
8.2.2 Logging Frameworks 206
8.2.3 Logging with Aspects 208
8.2.4 Logging at the Binary Level 213
8.3 Using Debuggers 215
8.3.1 A Debugging Session 216
8.3.2 Controlling Execution 220
8.3.3 Postmortem Debugging 221
8.3.4 Logging Data 222
8.3.5 Invoking Functions 223
8.3.6 Fix and Continue 223
8.3.7 Embedded Debuggers 224
8.3.8 Debugger Caveats 225
8.4 Querying Events 225
8.4.1 Watchpoints 226
8.4.2 Uniform Event Queries 228
8.5 Visualizing State 230
8.6 Concepts 232
8.7 Tools 233
LOG4J 233
ASPECTJ 233
V Contents
PIN 233
BCEL 234
GDB 234
DDD 234
JAVA SPIDER 234
eDOBS 235
8.8 Further Reading 235
8.9 Exercises 235
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.6 Concepts 254
9.7 Tools 254
ODB 254
9.8 Further Reading 255
9.9 Exercises 255
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.8.1 Validating the Heap with MALLOC_CHECK 276
10.8.2 Avoiding Buffer Overflows with ELECTRICFENCE 277
10.8.3 Detecting Memory Errors with VALGRIND 277
10.8.4 Language Extensions 279
10.9 Checking Production Code 281
10.10 Concepts 283
10.11 Tools 284
JML 284
Contents
ESC 285
GUARD 285
VALGRIND 285
PURIFY 285
INSURE++ 285
CYCLONE 286
CCURED 286
10.12 Further Reading 286
10.13 Exercises 288
1 1 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.8 Concepts 312
11.9 Tools 313
DAIKON 313
DIDUCE 313
11.10 Further Reading 313
11.11 Exercises 314
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 The Common Context 325
12.8 Causes in Debugging 325
12.9 Concepts 326
12.10 Further Reading 327
12.11 Exercises 328
1 Contents
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.9 Concepts 351
13.10 Tools 352
Delta Debugging Plug ins for ECLIPSE 352
CCACHE 352
13.11 Further Reading 353
13.12 Exercises 353
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.8 Concepts 382
14.9 Tools 383
ASKIGOR 383
IGOR 383
14.10 Further Reading 383
14.11 Exercises 384
1 5 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.3.1 Does the Error Cause the Failure? 391
15.3.2 Is the Cause Really an Error? 392
Contents
15.3.3 Think Before You Code 393
15.4 Correcting the Defect 395
15.4.1 Does the Failure No Longer Occur? 395
15.4.2 Did the Correction Introduce New Problems? 396
15.4.3 Was the Same Mistake Made Elsewhere? 397
15.4.4 Did I Do My Homework? 398
15.5 Workarounds 398
15.6 Learning from Mistakes 399
15.7 Concepts 402
15.8 Further Reading 403
15.9 Exercises 404
Formal Definitions 407
A. 1 Delta Debugging 407
A. 1.1 Configurations 407
A. 1.2 Passing and Failing Run 407
A. 1.3 Tests 408
A. 1.4 Minimality 408
A. 1.5 Simplifying 408
A. 1.6 Differences 409
A. 1.7 Isolating 410
A.2 Memory Graphs 411
A.2.1 Formal Structure 411
A.2.2 Unfolding Data Structures 412
A.2.3 Matching Vertices and Edges 414
A.2.4 Computing the Common Subgraph 415
A.2.5 Computing Graph Differences 415
A.2.6 Applying Partial State Changes 418
A.2.7 Capturing C State 418
A.3 Cause Effect Chains 420
Glossary 423
Bibliography 429
Index 439
|
adam_txt |
CONTENTS
Foreword xix
Preface xxi
1 How Failures Come to Be l
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.7 Concepts 21
1.8 Tools 23
1.9 Further Reading 23
1.10 Exercises 24
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.4.1 Severity 34
2.4.2 Priority 35
2.4.3 Identifier 35
2.4.4 Comments 35
2.4.5 Notification 35
2.5 Processing Problems 35
Contents
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.11 Concepts 46
2.12 Tools 48
BUGZILLA 48
PHPBUGTRACKER 49
ISSUETRACKER 49
TRAC 49
SOURCEFORGE 49
GFORGE 50
2.13 Further Reading 50
2.14 Exercises 51
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.3.1 Low level Interaction 58
3.3.2 System level Interaction 60
3.3.3 Higher level Interaction 61
3.3.4 Assessing Test Results 62
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.9 Concepts 79
3.10 Tools 80
JUNIT 80
ANDROID 81
APPLESCRIPT 81
VBSCRIPT 81
Other scripting languages 81
FAU 81
VMWare 82
Virtual PC 82
Contents
3.11 Further Reading 82
3.12 Exercises 83
4 Reproducing Problems 85
4.1 The First Task in Debugging 85
4.2 Reproducing the Problem Environment 86
4.3 Reproducing Program Execution 89
4.3.1 Reproducing Data 91
4.3.2 Reproducing User Interaction 92
4.3.3 Reproducing Communications 94
4.3.4 Reproducing Time 95
4.3.5 Reproducing Randomness 96
4.3.6 Reproducing Operating Environments 96
4.3.7 Reproducing Schedules 99
4.3.8 Physical Influences 101
4.3.9 Effects of Debugging Tools 102
4.4 Reproducing System Interaction 104
4.5 Focusing on Units 105
4.5.1 Setting Up a Control Layer 105
4.5.2 A Control Example 106
4.5.3 Mock Objects 109
4.5.4 Controlling More Interaction 112
4.6 Concepts 112
4.7 Tools 114
WlNRUNNER 114
Android 114
Revirt 114
Checkpointing Tools 114
4.8 Further Reading 114
4.9 Exercises 115
5 Simplifying Problems 117
5.1 Simplifying the Problem 117
5.2 The 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
Contents
5.8 Simplifying Faster 134
5.8.1 Caching 134
5.8.2 Stop Early 134
5.8.3 Syntactic Simplification 135
5.8.4 Isolate Differences, Not Circumstances 137
5.9 Concepts 138
5.10 Tools 139
Delta Debugging 139
Simplification Library 139
5.11 Further Reading 139
5.12 Exercises 140
6 Scientific Debugging 145
6.1 How to Become a Debugging Guru 145
6.2 The Scientific Method 146
6.3 Applying the Scientific Method 147
6.3.1 Debugging sample — Preparation 149
6.3.2 Debugging sample — Hypothesis 1 149
6.3.3 Debugging sample — Hypothesis 2 150
6.3.4 Debugging sample — Hypothesis 3 150
6.3.5 Debugging sample — Hypothesis 4 150
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
6.10 Concepts 163
6.11 Further Reading 164
6.12 Exercises 165
7 Deducing Errors 167
7.1 Isolating Value Origins 167
7.2 Understanding Control Flow 168
7.3 Tracking Dependences 172
7.3.1 Effects of Statements 172
7.3.2 Affected Statements 174
7.3.3 Statement Dependences 175
Contents "
7.3.4 Following Dependences 177
7.3.5 Leveraging Dependences 177
7.4 Slicing Programs 178
7.4.1 Forward Slices 179
7.4.2 Backward Slices 179
7.4.3 Slice Operations 180
7.4.4 Leveraging Slices 182
7.4.5 Executable Slices 182
7.5 Deducing Code Smells 183
7.6 Limits of Static Analysis 189
7.7 Concepts 193
7.8 Tools 194
CODESURFER 194
FINDBUGS 194
7.9 Further Reading 194
7.10 Exercises 195
8 Observing Facts 199
8.1 Observing State 199
8.2 Logging Execution 200
8.2.1 Logging Functions 202
8.2.2 Logging Frameworks 206
8.2.3 Logging with Aspects 208
8.2.4 Logging at the Binary Level 213
8.3 Using Debuggers 215
8.3.1 A Debugging Session 216
8.3.2 Controlling Execution 220
8.3.3 Postmortem Debugging 221
8.3.4 Logging Data 222
8.3.5 Invoking Functions 223
8.3.6 Fix and Continue 223
8.3.7 Embedded Debuggers 224
8.3.8 Debugger Caveats 225
8.4 Querying Events 225
8.4.1 Watchpoints 226
8.4.2 Uniform Event Queries 228
8.5 Visualizing State 230
8.6 Concepts 232
8.7 Tools 233
LOG4J 233
ASPECTJ 233
V Contents
PIN 233
BCEL 234
GDB 234
DDD 234
JAVA SPIDER 234
eDOBS 235
8.8 Further Reading 235
8.9 Exercises 235
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.6 Concepts 254
9.7 Tools 254
ODB 254
9.8 Further Reading 255
9.9 Exercises 255
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.8.1 Validating the Heap with MALLOC_CHECK 276
10.8.2 Avoiding Buffer Overflows with ELECTRICFENCE 277
10.8.3 Detecting Memory Errors with VALGRIND 277
10.8.4 Language Extensions 279
10.9 Checking Production Code 281
10.10 Concepts 283
10.11 Tools 284
JML 284
Contents
ESC 285
GUARD 285
VALGRIND 285
PURIFY 285
INSURE++ 285
CYCLONE 286
CCURED 286
10.12 Further Reading 286
10.13 Exercises 288
1 1 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.8 Concepts 312
11.9 Tools 313
DAIKON 313
DIDUCE 313
11.10 Further Reading 313
11.11 Exercises 314
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 The Common Context 325
12.8 Causes in Debugging 325
12.9 Concepts 326
12.10 Further Reading 327
12.11 Exercises 328
1 Contents
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.9 Concepts 351
13.10 Tools 352
Delta Debugging Plug ins for ECLIPSE 352
CCACHE 352
13.11 Further Reading 353
13.12 Exercises 353
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.8 Concepts 382
14.9 Tools 383
ASKIGOR 383
IGOR 383
14.10 Further Reading 383
14.11 Exercises 384
1 5 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.3.1 Does the Error Cause the Failure? 391
15.3.2 Is the Cause Really an Error? 392
Contents
15.3.3 Think Before You Code 393
15.4 Correcting the Defect 395
15.4.1 Does the Failure No Longer Occur? 395
15.4.2 Did the Correction Introduce New Problems? 396
15.4.3 Was the Same Mistake Made Elsewhere? 397
15.4.4 Did I Do My Homework? 398
15.5 Workarounds 398
15.6 Learning from Mistakes 399
15.7 Concepts 402
15.8 Further Reading 403
15.9 Exercises 404
Formal Definitions 407
A. 1 Delta Debugging 407
A. 1.1 Configurations 407
A. 1.2 Passing and Failing Run 407
A. 1.3 Tests 408
A. 1.4 Minimality 408
A. 1.5 Simplifying 408
A. 1.6 Differences 409
A. 1.7 Isolating 410
A.2 Memory Graphs 411
A.2.1 Formal Structure 411
A.2.2 Unfolding Data Structures 412
A.2.3 Matching Vertices and Edges 414
A.2.4 Computing the Common Subgraph 415
A.2.5 Computing Graph Differences 415
A.2.6 Applying Partial State Changes 418
A.2.7 Capturing C State 418
A.3 Cause Effect Chains 420
Glossary 423
Bibliography 429
Index 439 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Zeller, Andreas |
author_facet | Zeller, Andreas |
author_role | aut |
author_sort | Zeller, Andreas |
author_variant | a z az |
building | Verbundindex |
bvnumber | BV020876539 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.9.D43 |
callnumber-search | QA76.9.D43 |
callnumber-sort | QA 276.9 D43 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 233 |
ctrlnum | (OCoLC)254695438 (DE-599)BVBBV020876539 |
dewey-full | 005.1/4 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1/4 |
dewey-search | 005.1/4 |
dewey-sort | 15.1 14 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01919nam a2200505 c 4500</leader><controlfield tag="001">BV020876539</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20061027 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">051118s2006 gw a||| |||| 00||| eng d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">05,N26,0055</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">975139134</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781558608665</subfield><subfield code="9">978-1-55860-866-5</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3898642798</subfield><subfield code="9">3-89864-279-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1558608664</subfield><subfield code="9">1-55860-866-4</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783898642798</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)254695438</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV020876539</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-898</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-824</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-11</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.9.D43</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1/4</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 233</subfield><subfield code="0">(DE-625)143620:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Zeller, Andreas</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Why programs fail</subfield><subfield code="b">A guide to systematic debugging</subfield><subfield code="c">Andreas Zeller</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Amsterdam [u.a.]</subfield><subfield code="b">Elsevier</subfield><subfield code="c">2006</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Heidelberg</subfield><subfield code="b">dpunkt.Verl.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXVIII, 448 S.</subfield><subfield code="b">Ill.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Débogage</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Engenharia de software</subfield><subfield code="2">larpcal</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Debugging in computer science</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Debugging</subfield><subfield code="0">(DE-588)4148954-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="8">1\p</subfield><subfield code="0">(DE-588)4123623-3</subfield><subfield code="a">Lehrbuch</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Debugging</subfield><subfield code="0">(DE-588)4148954-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=2642807&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014198213&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-014198213</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield></record></collection> |
genre | 1\p (DE-588)4123623-3 Lehrbuch gnd-content |
genre_facet | Lehrbuch |
id | DE-604.BV020876539 |
illustrated | Illustrated |
index_date | 2024-07-02T13:27:31Z |
indexdate | 2024-07-09T20:27:16Z |
institution | BVB |
isbn | 9781558608665 3898642798 1558608664 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-014198213 |
oclc_num | 254695438 |
open_access_boolean | |
owner | DE-898 DE-BY-UBR DE-573 DE-703 DE-824 DE-Aug4 DE-92 DE-83 DE-11 |
owner_facet | DE-898 DE-BY-UBR DE-573 DE-703 DE-824 DE-Aug4 DE-92 DE-83 DE-11 |
physical | XXVIII, 448 S. Ill. |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | Elsevier dpunkt.Verl. |
record_format | marc |
spelling | Zeller, Andreas Verfasser aut Why programs fail A guide to systematic debugging Andreas Zeller Amsterdam [u.a.] Elsevier 2006 Heidelberg dpunkt.Verl. XXVIII, 448 S. Ill. txt rdacontent n rdamedia nc rdacarrier Débogage Engenharia de software larpcal Debugging in computer science Debugging (DE-588)4148954-8 gnd rswk-swf 1\p (DE-588)4123623-3 Lehrbuch gnd-content Debugging (DE-588)4148954-8 s DE-604 text/html http://deposit.dnb.de/cgi-bin/dokserv?id=2642807&prov=M&dok_var=1&dok_ext=htm Inhaltstext HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014198213&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Zeller, Andreas Why programs fail A guide to systematic debugging Débogage Engenharia de software larpcal Debugging in computer science Debugging (DE-588)4148954-8 gnd |
subject_GND | (DE-588)4148954-8 (DE-588)4123623-3 |
title | Why programs fail A guide to systematic debugging |
title_auth | Why programs fail A guide to systematic debugging |
title_exact_search | Why programs fail A guide to systematic debugging |
title_exact_search_txtP | Why programs fail A guide to systematic debugging |
title_full | Why programs fail A guide to systematic debugging Andreas Zeller |
title_fullStr | Why programs fail A guide to systematic debugging Andreas Zeller |
title_full_unstemmed | Why programs fail A guide to systematic debugging Andreas Zeller |
title_short | Why programs fail |
title_sort | why programs fail a guide to systematic debugging |
title_sub | A guide to systematic debugging |
topic | Débogage Engenharia de software larpcal Debugging in computer science Debugging (DE-588)4148954-8 gnd |
topic_facet | Débogage Engenharia de software Debugging in computer science Debugging Lehrbuch |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=2642807&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=014198213&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT zellerandreas whyprogramsfailaguidetosystematicdebugging |