CHAPTER 14 Isolating Cause–Effect Chains

This chapter presents a way of narrowing down failure causes even further. By extracting and comparing program states, delta debugging automatically isolates the variables and values that cause the failure, resulting in a cause–effect chain of the failure:” variable x was 42; therefore p became null; and thus the program failed.”

14.1 USELESS CAUSES

In Chapter 13, we saw how to isolate inputs, code changes, or schedules that cause a given failure. In many cases, such causes directly lead to the defect in question. There are cases, though, where a difference in the input, for instance, gives few clues, if any, to the nature of the error. This is particularly true if program processes input at several ...

Get Why Programs Fail, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.