🌻 📖 ebug_client

NAME

ebug_client - Debugger client for remote debugging Perl script

VERSION

version 0.64

SYNOPSIS

 ebug_client -key <secret> -port <port>

DESCRIPTION

ebug_client is an debugger front end for attaching to remotely executing perl script, running on ebug_server.

To invoke ebug_client, you must first invoke ebug_server to run debuggee and generate "key" and "port" needed for connection. When ebug_server is invoked, it will show exact command-line to invoke ebug_client.

EXAMPLE

 # Attach to ebug_server running on port 4023, with key "begripra"
 $ ebug_client -key begripra -port 4023

NOTE

Currently, you cannot "restart" debuggee. You'll need to restart one manually by re-invoking both ebug_server and ebug_client.

Since Devel::ebug::Backend listens to "localhost" socket, you will need to relay I/O using tool like socat for true remote debugging.

Internally, thanks for it being free software, it is almost a complete ripoff of Devel::ebug source.

SEE ALSO

Devel::debug, ebug, ebug_server

cut

package Devel::ebug;

use Devel::ebug; use IO::Socket::INET;

our $ARG = {};

# Replace 'load' with one that just attaches sub load { my $self = shift; $self->attach($ARG->{port}, $ARG->{key}); }

package main;

use Devel::ebug::Console; use Getopt::Long;

GetOptions( my $OPT = {}, 'help', 'port=i', 'key=s' ) || help(); help() if $OPT->{help};

$Devel::ebug::ARG = $OPT; my $console = Devel::ebug::Console->new(); $console->run(); exit(0);

sub help { print STDERR <<EOF; Usage: $0 -key <secret> -port <port> -- debuggee args... EOF exit(1); }

AUTHOR

Original author: Leon Brocard <acme@astray.com>

Current maintainer: Graham Ollis <plicease@cpan.org>

Contributors:

Brock Wilcox <awwaiid@thelackthereof.org>

Taisuke Yamada

COPYRIGHT AND LICENSE

This software is copyright (c) 2005-2021 by Leon Brocard.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.