How I built a power debugger out of the standard library and things I found on the internet
summary
A complete tracing debugger called Smiley records every call every line every variable by installing Python’s trace hook, serializes complex objects to JSON, ships events over push-pull zeromq + sqlite for storage, and adds a web UI (Pylons, Bootstrap) with Pygments syntax highlighting and profiler output turned into gprof2dot graphs. Development is iterative—many small cycles over years—and it works on real tools but slows traced programs noticeably; useful if you want a postmortem, record-and-replay debugging workflow rather than an interactive pdb session.
AI-written summary · about
chapters (13)
- 0:00Project introduction
- 2:30Naming and initial vision
- 4:24Communication infrastructure
- 6:10Tracing and data capture
- 9:16Command line interface
- 13:45Database storage integration
- 18:51Complex data and replay
- 23:14Replay and source caching
- 28:02Unified local workflow
- 30:20Web interface development
- 35:16Profiling and visualization
- 36:40Enhancements and evolution
- 43:23Q&A and closing
related talks
23mTrace functions: Building a tiny debugger
24mLet’s Rethink Debugging
28mWhat makes a Python debugger possible and how can we make it 100x faster
06mImproving Debuggability with GDB's Python API
12mDebugging Python in Production: Practical Techniques Beyond Print Statements
41mAdvanced Python Debugging Techniques Using GDB
27mThe Hidden Power of the Python Runtime
52mCombining Embedded and Interactive Python in a Debugger: A Case Study
