by jpmonettas on 8/17/23, 12:23 PM with 5 comments
by darrickw on 8/17/23, 3:54 PM
The software I'm building is very data-intensive, so I can't do full-program tracing. Instead, when I find a problem, I simply add #trace tags to the handful of spots I think may be relevant, re-eval them in the live environment and rerun the failing code. My workflow for solving even tricky-seeming issues has become so fast that fixing bugs doesn't even break me out of the flow I'm in working on whatever it is I'm building. It's really improved my productivity.
The performance impact of tracing has also been surprisingly light. Even when I'm tracing functions that may be called many thousands of times and producing 100,000+ time steps and testing the limits of my 12G heap (I'm generating large amounts of temporary data), the performance overhead of using FlowStorm is only barely perceptible, and in most cases it is not noticeable at all.
Because it's so powerful, I've also started using FS to help me read and understand code. I find it very helpful when I'm reading code to be able to click around and see the data flowing through. Overall this is just an incredibly useful tool!
by fulafel on 8/17/23, 2:15 PM
edit: in the Videos section there's a short value searching YouTube video linked: https://www.youtube.com/watch?v=CwXhy-QsZHw
Are there similar themed time travel debugging systems for Python or JS?
by kennytilton on 8/17/23, 3:18 PM