Where am I now, Really? A novel use of decompilation

By: Rocky Bernstein from NY.pm
Date: Not scheduled yet.
Duration: 20 minutes
Target audience: Any
Language: English
Tags: b::parsetree b:deparse debugger stack trace


How is finding out more precisely where your Perl program is when it runs like transating between Gaelic and English?

Perl was created by a language enthusiast, so it is only fitting to finish the circle and show how computer-to-human translation is like human-to-human translation. More so that I think most people have hitherto appreciated.

Decompiling is often used in conjunction with recovering lost source code, or reverse-engineering code when we do not have access to the source code. It can be optionally used in Data::Printer for code references you have stashed in your data structures.

I will describe a novel use: in tracebacks, debuggers, and similar places where accurate position reporting is desired, even in the presence of string evaluation where the source code was created at runtime.

I'll show how line numbers are vague and ambiguous.

The module B::Deparse has been around a long time for Perl. I have extended that in B::DeparseTree so that it can be used at runtime to show you where you are. I will also demo its use in a real debugger.

See also http://blogs.perl.org/users/rockyb/2018/06/introducing-bdeparsetree-and-rewriting-bdeparse-part-1.html


Attended by: Tom Hukins, Lee Johnson, Rocky Bernstein

Corporate Sponsors

cPanel Eligo Geekuni, Perl Courses online Geizhals Perl Careers Perl Services Pirum Shadowcat Systems Limited StickerYou custom Sticker Sheets

Community Sponsors

Enlightened Perl Organisation Perl6 Community Perl Weekly