3 ms·
The author starts out with a a simple statement: > Many people prefer print debugging over interactive debugging tools. Then explains that eventually develope
by cptskippy 6y ago
The author starts out with a a simple statement:
> Many people prefer print debugging over interactive debugging tools.
Then explains that eventually developers come around to debugging. He explains all the advantages debuggers have while simultaneously touting his own tools. Then he blames adoption on the lack of engineering effort put into overcoming teething problems and calls for platform vendors to better support debuggers.
I feel like the author is living in a vacuum and has no idea how most developers work. Watching his demo for Pernosco makes my eyes bleed.
The steps he takes for debugging a crashing Python App are:
1) Reproduce bug and capture with rr
2) Transmit capture to Pernosco
3) Wait Minutes for an Email to arrive.
4) Follow link in Email to Web based Debugger
5) Review Core Call Stack and Assembly for your Python App.
If it gets to the point where I need to review core call stacks or assembly to figure out why my code is crashing then I'm probably just going to rewrite it. For most developers writing line of business Apps or scripts to parse data and shove it in a DB, the errors you encounter don't require inspecting CPU registers or walking through assembly. They boil down to a misunderstanding about an object state or contents that's quickly rectified by runtime inspection which is why print statements work so well.
By the time the author got to step 4 of his Pernosco demo, most developers using Print Debugging would have fixed their bug and been on to the next one.
- EamonnMR 6y ago> [Most bugs] boil down to a misunderstanding about an object state or contents that's quickly rectified by runtime inspection which is why print statements work so well. This, in particular, is why print debugging won't go away.
- roca 6y agoPerhaps the bug we chose to demo there is not representative of most bugs, but the underlying bug is in C code and Brendan Gregg, the person who debugged it "for real", debugged it using gdb. The erroneous state in this case is in ncurses, packaged as a system library, so using print debugging here would require building ncurses from source and wedging that into LLVM/Python somehow. So no, I don't believe your claim.
- cptskippy 6y agoI recognize that there are bugs that exist in downstream packages and some developers take it upon themselves to debug and troubleshoot those occurrences, which we should appreciate. I think we should all recognize that as a special case and not the norm. Most developers, myself included, lack the knowledge or skill to do that. I would speculate that most developers, once they identify a bug in a downstream package, would instead either go online to find consensus around the bug and report it to the maintainer of that package, or just find an alternative solution.
- deleted 6y ago[deleted]
- mousepilot 6y agook now I have to watch this demo. thats crazy! i get a sense that i would hate pernosco as a vendor.