4 ms·
I noticed the same person has made seemingly very powerful gdb-inspired debuggers for a whole bunch of languages, which is really impressive. I'm not super comf
by SwellJoe 9y ago
I noticed the same person has made seemingly very powerful gdb-inspired debuggers for a whole bunch of languages, which is really impressive. I'm not super comfortable with gdb (it's been years since I used it with any regularity), in general, but I'd be willing to invest more time in it knowing the knowledge transfers to other languages.
- linsomniac 9y agoThere are tons of front-ends that interface with gdb, which is part of why so many things use a gdb-like UI. One of the demos on the page is using "ddd" (the Data Display Debugger), which I was pretty impressed with 20 years ago when I last used it.
- rurban 9y agobashdb being the most popular one by Rocky. The others unfortunately never really took off.
- rockybernstein 9y agoYeah, you win a few and lose a lot. I guess it all evens out. Judging by github ratings, the debugger for zsh (zshdb) is more popular than I would have expected. And that means I have had to know more about zsh than I would have otherwise. Like bashdb, zshdb is packaged in Debian/Ubuntu; recently the debian maintainer asked me to update this for more recent zsh releases, which I've done. By the way, I use github ratings to decide which of several projects to work on when there is a choice. remake ratings have shot up quite a bit by this post, so I guess I'll have to beef it up: add a screenshot of profiling and update the older versions of GNU make for more recent changes. My recent focus has been on using decompilation as a means of getting more accurate position information. See https://github.com/rocky/python-uncompyle6/wiki/Deparsing-Paper https://github.com/rocky/python-uncompyle6/wiki/Deparsing-Pa... Sure, I use this in my debuggers, but it would be probably as or more valuable in tracebacks. For example there is a decent decompiler in Perl for example: https://metacpan.org/pod/B::DeparseTree https://metacpan.org/pod/B::DeparseTree . I would love to figure out how to hook into Perl's traceback (not Carp, but the one for Perl) to augment that to give this more accurate position information.
- rurban 9y agoYou are speaking with the Perl expert :) glad to help. Positions are stored in COP's only, you need to get them dynamically via the API. Some blocks do have wrong or bad line ranges, yes.
- rockybernstein 9y agoI know. I am a long-time fan of your Perl work. And I know how to get them dynamically via an API which is done for example in https://metacpan.org/pod/Devel::Trepan::Deparse https://metacpan.org/pod/Devel::Trepan::Deparse What I don't know how to do, if you could help is register in Perl that I want my routine called when Perl hits an error, so that I can do the deparse and spit out a more detailed location message. Thanks!