A debugger is not a debugger, it is an interactive program executor. The sooner we internalize this, the sooner we can talk about what should really be considered a “debugger.”
A person debugging a program is a debugger. They use many tools to understand program behavior, such as an interactive program executor or program state displayer (printf). Which raises the question — how useful is interactive execution to understanding behavior?
Or differently: what other kinds of tools help debug / understand programs? Whyline showed that another framing is *automatic reduction of context*. Tools that can interactively eliminate regions of code unrelated to the bug. (Good idea, let’s do more of that!)
You can follow @wcrichton.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: