Home

Introduction to Rebugger

Rebugger is an expression-level debugger for Julia. It has no ability to interact with or manipulate call stacks (see ASTInterpreter2), but it can trace execution via the manipulation of Julia expressions.

The name "Rebugger" has 3 meanings:

Rebugger is an unusual debugger with a novel work-flow paradigm. With most debuggers, you enter some special mode that lets the user "dive into the code," but what you are allowed to do while in this special mode may be limited. In contrast, Rebugger brings the code along with its input arguments to the user, presenting them both for inspection, analysis, and editing in the (mostly) normal Julia interactive command line. As a consequence, you can:

Rebugger exploits the Julia REPL's history capabilities to simulate the stacktrace-navigation features of graphical debuggers. Thus Rebugger offers a command-line experience that is more closely aligned with graphical debuggers than the traditional s, n, up, c commands of a console debugger.

Installation

Begin with

(v1.0) pkg> add Rebugger

You can experiment with Rebugger with just

julia> using Rebugger

If you eventually decide you like Rebugger, you can optionally configure it so that it is always available (see Configuration).

Keyboard shortcuts

Most of Rebugger's functionality gets triggered by special keyboard shortcuts added to Julia's REPL. Unfortunately, different operating systems and desktop environments vary considerably in their key bindings, and it is possible that the default choices in Rebugger are already assigned other meanings on your platform. There does not appear to be any one set of choices that works on all platforms.

The best strategy is to try the demos in Usage; if the default shortcuts are already taken on your platform, then you can easily configure Rebugger to use different bindings (see Configuration).

Some platforms are known to require or benefit from special attention:

macOS

If you're on macOS, you may want to enable "Use option as the Meta key" in your Terminal settings to avoid the need to press Esc before each Rebugger command.

Ubuntu

The default meta key on Ubuntu is left Alt, which is equivalent to Esc Alt on the default Gnome terminal emulator. However, even with this tip you may encounter problems because Rebugger's default key bindings may be assigned to activate menu options within the terminal window, and this appears not to be configurable. As a consequence Ubuntu users will very likely need to Customize keybindings.