Index_C


C

Calmness, 52

Camouflage effect, 55–56

Case study I, 63

bug 1, 78–82

bug 2, 83–89

bug 3, 89–94

bug 4, 94–111

bug 5, 111–14

bug 6, 115–17

bug 7, 117–22

bug 8, 122–26

bug 9, 126–32

bug 10, 133–36

bug 11, 136–43

bug 12, 143–45

bug 13, 145–53

bug 14, 153–54

bug 15, 155–74

code, 64–77

complete binary tree, 64

defined, 63–64, 279–80

heap sorts, 63–64

program, 63–77

Case study II, 257–79

algorithm, 258

bug 1, 262–65

bug 2, 265–67

bug 3, 267–68

bug 4, 268–79

code, 258–62

defined, 257–58

final source, 275–79

final test, 269–74

program, 257–62

Case study III, 279–360

bug 1, 303–7

bug 2, 307–11

bug 3, 311–16

bug 4, 316–17

bug 5, 317–19

bug 6, 319–23

bug 7, 323–25

bug 8, 326–28

bug 9, 328–31

bug 10, 331–34

code, 281–303

expression tree, 280

final source, 338–60

final test, 334–38

idioms, 280

idioms database, 281

matching phase, 281

numbering phase, 280, 281

program, 279–303

Categorizing problems, 208–12

completion, 209–10

correctness, 208–9

efficiency, 211–12

robustness, 210–11

See also Debugging heuristics

Cause-and-event charting, 381–82

construction steps, 382

defined, 381

symbols, 381

Causes

eliminating, 28, 38

list of, 151

C/C++ union, 208

Certainty effect, 413

Chomsky hierarchy, 474–76

context-free grammars, 475

context-sensitive grammars, 475–76

phrase-structure grammar, 476

regular grammars, 475

Class-hierarchy browser, 224

Class structure metarules, 455–57

commentary, 456

convention examples, 456–57

See also Programming conventions

Code

blocks, 190

problems, 60

read tactic, 222–24

CodeSurfer, 482–85

analysis comparison, 504

defined, 482

dicing, 483

features, 482–83

slices, 483

technology, 484

usage, 484–85

See also Static-analysis tools

Coding errors, 371–80

binding, 372–73

control-flow, 377

dynamic data-structure, 374

external software, 379–80

extra operations, 376–77

finalization, 372

initialization, 371–72

invalid expressions, 378–79

memory, 375–76

missing operations, 376

object-oriented, 375

reference, 373

static data-structure, 373–74

typographical, 379

value-corruption, 377–78

See also Software-defect root causes

Cognitive activities, 8

Comfort, 52

Common sense, 10

Compilers

different, using, 251–52

problem, cutting down, 206–7

Compile to assembly code, 252–54

defined, 252

language specifics, 254

potential problems, 253

purpose, 252

questions answered, 252

refined tactics, 253

related tactics, 253–54

tactics selection, 254

See also Debugging tactics

Complete binary trees, 64

Completion, 209–10

hypotheses, 210

questions, 209–10

Complexity errors, 411–12

Computer scientists

analysis comparison, 503–5

dynamic-analysis tools, 488–503

linguistic formalism, 474–78

static-analysis tools, 478–88

way of, 4, 473–507

worldview, 474

Conception stage, 438

design write-out, 443–44

error avoidance, 442–45

prototype implementation, 444–45

Concurrent Versions System (CVS), 59

Confidence, 52

Constructive activities, 8

Control, per Schoenfeld, 184–85

Control-flow graphs, 215

Control-flow problems, 377

Control structures

breadth-first search strategy, 192–93

deductive-analysis strategy, 196

depth-first search strategy, 194

greedy search strategy, 191–92

inductive-analysis strategy, 197

program slice strategy, 195

See also Debugging strategies

Convex Application Compiler, 468

Correction. See Fault and correction

Correctness, 208–9

hypotheses, 209

questions, 208–9

Cross-disciplinary knowledge, 19–20

Cupillari, Antonella, 179–80

Curiosity, 39




Debugging by Thinking. A Multidisciplinary Approach
Debugging by Thinking: A Multidisciplinary Approach (HP Technologies)
ISBN: 1555583075
EAN: 2147483647
Year: 2002
Pages: 172

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net