The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Devel::Camelcadedb - perl side of the perl debugger for IntelliJ IDEA and other JetBrains IDE

DESCRIPTION

This module should be instaleld for debugging using Camelcade plugin for IntelliJ IDEA

TEMPLATE ENGINES INTEGRATION

Debugger has an eval-based template engines support, but it requires some code from the engine side. This allows to set breakpoints in the template file.

To make this work, template engine should invoke debugger's hook immediately after evaling compiled template code, providing template source file path and reference to the hash of lines map template_line => eval_line. Example:

eval($compiled_template);
{
    no strict 'refs';
    my $glob = *{'::DB::template_handler'};

    if ($glob && *{$glob}{CODE})
    {
        *{$glob}{CODE}->($filepath, $lines_map);
    }
}

FUNCTIONS

connect_or_reconnect

DB::connect_or_reconnect();

Tries to connect to the IDE, use is_connected to check whether the attempt was successful. Most useful when setting $ENV{PERL5_DEBUG_AUTOSTART} to 0 to avoid connecting at program startup.

is_connected

$is_connected = DB::is_connected();

Checks whether there is an active connection to the IDE.

disconnect

DB::disconnect();

Disconnects from the IDE.

disable

DB::disable();

Disables the most expensive debugger hooks, so execution speed is not affected; the debugger is not functional while disabled, but it can be re-enabled at any time.

enable

DB::enable();

Re-enables debugging after a disable call.

AUTHORS

2016 Alexandr Evstigneev hurricup@gmail.com