Hacker News new | ask | show | jobs
by rockybernstein 3213 days ago
Yeah, 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-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 . 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.

1 comments

You 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.
I 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

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!