Software Design by Example in Python 26: A Debugger

Posted

As I wrote two weeks ago, two things led me to write the JavaScript and Python versions of Software Design by Example: Mary Rose Cook’s Gitlet and the question, “How does a debugger work?” Earlier chapters addressed the first, and Chapter 26: A Debugger addresses the second.

I’ve complained many times over more than two decades about the fact that universities don’t teach debugging as a first-class skill, and that while there are hundreds of books on how to write compilers, I’ve only ever found three that explained how to write a debugger (none of which were particularly good). Showing people how to create and manage breakpoints isn’t going to fix that, but I’m glad I had a chance to do what I could.

My thanks to Jennifer Moore, Naomi Ceder, and Sue Smith for the reviews now posted on this site’s home page: I’m glad they enjoyed the book.

Concept map for a debugger

Terms defined: breakpoint, clear (a breakpoint), conditional breakpoint, debugger, disassemble, reverse lookup, watchpoint.

Cover of 'Software Design by Example'