- Name: Gabor Szabo
- Project Title: Perl debugger integration in Padre, the Perl IDE
- Synopsis: Integrating the perl built-in debugger into Padre, the Perl IDE using Debug::Client a stand alone client to the perl debugger.
Perl debugger integration in Padre, the Perl IDE
Integrating the perl built-in debugger into Padre, the Perl IDE using Debug::Client a stand alone client to the perl debugger.
Benefits to the Perl Community:
Padre already has many features required for a text editor. Adding the debugging capabilities will allow any perl programmer to use the power of the built in debugger without the fear of the command line or the learning curve associated with it. This addition will move Padre one large step closer to be a real Perl IDE.
Providing a simple text editor that people can use to write perl scripts and run them through a graphical debugger is especially important for beginners and/or MS Windows users but will benefit any Perl programmer.
As Padre is written in Perl and distributed under the same license as perl itself it can be used freely anywhere.
The separation of Debug::Client as a stand alone module will allow any text editor to be easily integrated with the built in debugger opening the way to other IDEs as well. The integration with Padre will ensure that the client is indeed usable in a real world situation.
Debug::Client, a stand-alone client for the built in perl debugger should pass its full test suit on Linux/Unix/OSX/MS Windows on perl versions starting from 5.6. This will be verified to the extent the CPAN testers provide coverage. Test coverage of the module should be at least 90%.
Integration into Padre to be usable right from the editor.
The following features will be supported:
- run to line/subroutine
- set/remove conditional breakpoint
- set/remove watch (location independent conditional breakpoint)
- constantly display content of any variable (scalar, array or hash)
- evaluate arbitrary expression in the process
- stack trace
The built-in debugger of perl that is normally invoked using the -d command line option can also connect to a predefined socket to be controlled via that socket.
This communication channel has been used by some editors to provide debugging capabilities for Perl but none of theses abstracted out their client side. In most, if not all the cases they are written in other languages so such abstraction would be meaningless to us anyway.
Padre is a Perl IDE written in Perl using the wxWidgets GUI library. It has been tested on MS Windows, Linux and OSX. In its current state it is a text editor with some Perl specific features. Adding debugging capabilities to it will turn it into something that can already be called a real IDE. In order to add debugging capabilities we either need to implement a debugger or reuse the built-in perl debugger via its socket communication layer. The advantage of connecting to the built-in debugger is that we don't need to install anything to the perl used for the production code and it also enables us to run the debugger remotely.
Debug::Client is a stand-alone module that implements the clients side of that socket communication with the built-in debugger. It has been written separately from Padre in order to make it reusable by any other IDE or tool that might want to add perl debugging capabilities.
See also http://padre.perlide.org/
I plan to begin the project immediately and finish it within 2 months.
Gabor Szabo has been programming Perl since 1995 and teaching it since 2000. He has several modules on CPAN and has contributed to many other modules including ack. Gabor is the primary author of both Padre and Debug::Client.
See also http://szabgab.com/