The Debugging Book


While the chapters of this book can be read one after the other, there are many possible paths through the book. In this graph, an arrow AB means that chapter A is a prerequisite for chapter B. You can pick arbitrary paths in this graph to get to the topics that interest you most:

In [1]:
# ignore
from IPython.display import SVG
In [2]:
# ignore
%3 Tracer Tracing Executions Debugger How Debuggers Work Tracer->Debugger Assertions Asserting Expectations Tracer->Assertions DeltaDebugger Reducing Failure- Inducing Inputs Tracer->DeltaDebugger StatisticalDebugger Statistical Debugging Tracer->StatisticalDebugger DynamicInvariants Mining Function Specifications Tracer->DynamicInvariants ChangeDebugger Isolating Failure- Inducing Changes DeltaDebugger->ChangeDebugger DDSetDebugger Generalizing Failure Circumstances DeltaDebugger->DDSetDebugger PerformanceDebugger Debugging Performance Issues DeltaDebugger->PerformanceDebugger Repairer Repairing Code Automatically DeltaDebugger->Repairer StatisticalDebugger->PerformanceDebugger StatisticalDebugger->Repairer Intro_Debugging Introduction to Debugging Intro_Debugging->Tracer Slicer Tracking Failure Origins Intro_Debugging->Slicer Tracking Tracking Bugs Intro_Debugging->Tracking