Read source code, 222–24
defined, 222
potential problems, 223
purpose, 222
questions answered, 223
refined tactics, 223
related tactics, 223–24
See also Debugging tactics
Reasoning
based on facts, 40
in both directions, 29–30
Red herrings
defined, 30
watching for, 30–31
Redundancy exploitation, 446–47, 450
Remove function
breakpoint at, 119
missing statement in, 131
no termination condition check, 117
not updating _last variable, 121
unguarded reference, 114, 116
Repeating, debugging by, 11
“Reporter’s method,” 43
Research, 414–27
Allwood and Bjhorhag, 1991, 425
Anderson and Jeffries, 1985, 416–17
Brooke and Duncan, 1980, 415
Carver, 1989, 423–24
Ebrahami, 1994, 425–26
Gilmore and Smith, 1984, 415–16
Gould, 1975, 414–15
Gugerty and Olsen, 1987, 419–20
Katz and Anderson, 1988, 421–23
Kessler and Anderson, 1987, 420
Spohrer, Soloway, and Pope, 1985, 417–18
Spohrer and Soloway, 1987, 420–21
Stone, Jordon, and Wright, 1990, 424–25
summary, 426–27
Vessey, 1985, 1986, 418–19
Vessey, 1989, 423
Youngs, 1974, 414
See also Way of the psychologist
Resources, per Schoenfeld, 183
Reviewing methods, 509–13
later, 513
now, 509
Revision Control System (RCS), 59
Robustness, 210–11
hypotheses, 211
questions, 210
Root-cause analysis, 362–63
database records, 363
defined, 362
statistical summaries, 363
tools, 380
_Root variable, 116, 117
as null pointer, 154
updating, 157
Rule-based behavior, 391–92
Rule-based errors, 400–401
categories, 400
example, 401
rule selection factors, 400
See also Error causes
Rules
actions, 405
bad, application of, 404–7
conditions, 403, 404–5
formerly effective, 405–6
good, misapplication of, 401–4
ineffective, 405
occasionally effective, 406–7
problems, 403–4
strength, 403
Runtime heap checking, 245–46
defined, 245
language specifics, 246
potential problems, 245
purpose, 245
questions answered, 245
refined tactics, 245–46
related tactics, 246
tactics selection, 246
See also Debugging tactics
Runtime stack checking, 243–45
defined, 243
language specifics, 245
potential problems, 244
purpose, 244
questions answered, 244
refined tactics, 244
related tactics, 244
tactics selection, 244–45
See also Debugging tactics
Runtime subscript checking, 242–43
defined, 242
language specifics, 243
potential problems, 242
purpose, 242
questions answered, 242
related tactics, 243
tactics selection, 243
See also Debugging tactics