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::ebug::Wx - GUI interface for your (d)ebugging needs

SYNOPSIS

  # it's easier to use the 'ebug_wx' script
  my $app = Wx::SimpleApp->new;
  my $wx = Devel::ebug::Wx->new( { argv => \@ARGV } );
  $wx->Show;
  $app->MainLoop;

DESCRIPTION

Devel::ebug::Wx is a GUI front end to Devel::ebug.

The core is a publisher/subscriber wrapper around Devel::ebug (Devel::ebug::Wx::Publisher) plus a plugin system for defining menu commands and keyboard bindings (Devel::ebug::Wx::Command::*) and views (Devel::ebug::Wx::View::*).

The wxWidgets Advanced User Interface (AUI) is used, so it is possible to dock/undock and arrange views.

TODO

  • make a saner interface for plugins

    what do commands do; better registration interface allow generic plugins to offer views/commands/services at the same time

  • define a service interface

    for example for code-viewing, gui management, view management allow enabling/disabling services, commands, views auto-disable commands/views/services with clashing identifiers

  • add more views (package browser)

  • configuration interface

    ConfigurationManager service; lists all configuration views attribute to define configuration views (different from normal views) automatically tie configurator to configurable object interface to notify of configuration changes allow a configuration view to configure multiple objects (by explicit registration)

  • notebooks

    better editing interface better debugging; edge cases still present, esp. at load time rethink container view interface and the whole concept of multiviews

  • allow saving debugger state between sessions

    views have gui state that needs saving, global state of the debugger gui gui state might be in a different place from configuration state separate "debugged program" state (bp, expressions, view state) from ebug_wx state (configuration and view layout); push temporary overlay on configuration manager

  • better handling for program termination

    visual feedback in the main window disable commands/etc when they do not make sense

  • the command manager must allow dynamic menus

    command returns a (subscribable) handle that can be used to poll/listen to changes explict use of update_ui is an hack!

  • break on subroutine, undo, watchpoints

  • show pad, show package variables, show packages

  • see the FIXMEs

SEE ALSO

Devel::ebug, ebug_wx, Wx, ebug

AUTHOR

Mattia Barbon, <mbarbon@cpan.org>

COPYRIGHT

Copyright (C) 2007, Mattia Barbon

This program is free software; you can redistribute it or modify it under the same terms as Perl itself.