Perl port of trepanning debugger
Perl Other
Latest commit 1b87380 Jun 15, 2016 Rocky Bernstein Fix bug in adding commands to history
Failed to load latest commit information.
bin Add options to pass -I and -M options to debugged program. Issue #34. May 5, 2014
Artistic Add a README and license info. Oct 11, 2011
ChangeLog Small chhanges. Jun 14, 2016
GNUmakefile Accomodations for Test::Aggregate which isn't a win right now. exampl… Mar 2, 2014
MANIFEST.SKIP Accomodations for Test::Aggregate which isn't a win right now. exampl… Mar 2, 2014
META.json utf-8 and spellcheck pods Nov 28, 2015
README A couple of spelling typos Dec 12, 2012 Revise overviews Nov 14, 2015
THANKS More links in subcommad managers. Add THANKS - why did it take me so … May 10, 2014
gpl-2.0.txt More packaging administrivia Dec 12, 2012
ignore.txt Add a README and license info. Oct 11, 2011

Build Status

Devel::Trepan — A new Perl debugger

A modular, testable debugger in the family of the Ruby "Trepanning" debuggers. The command set is modeled off of gdb, but other command sets are possible.


  • has extensive online-help,
  • syntax highlighting of Perl code
  • context-sensitive command completion
  • out-of-process and remote debugging
  • interactive shell support
  • code disassembly
  • gdb syntax
  • easy extensibility at several levels
  • is more modular
  • comes with extensive tests
  • is not as ugly as perl5db


From a shell:

$ [trepan-opts] [--] perl-program [perl-program-opts]

Or for those who prefer the traditional Perlish way:

$ perl -d:Trepan perl-program [perl-program-opts]

The problem with the above "perlish" approach is that there are a number of default options won't get set intelligently. If that matters, you'll have to set them either with a debugger command or via environment variable TREPANPL_OPTS. To see the environement variables, run with the --verbose option.

Calling the debugger from inside your Perl program using Joshua ben Jore's Enbugger:

# This needs to be done once and could even be in some sort of
# conditional code
require Enbugger; Enbugger->load_debugger( 'trepan' );

# Alternatively, to unconditionally load Enbugger and trepan:
use Enbugger 'trepan';

# work, work, work...
# Oops! there was an error! Enable the debugger now!
Enbugger->stop;  # or Enbugger->stop if ...

Or if you just want POSIX-shell-like set -x line tracing:

$ -x -- perl-program [perl-program-opts]

Inside the debugger tracing is turned on using the command set trace print. There is extensive help from the help command.


To install this Devel::Trepan from source code:

perl Build.PL
make test
[sudo] make install

or to install from CPAN:

$ cpanm Devel::Trepan

See Also

Licence and Copyright

Copyright (C) 2011-2015 Rocky Bernstein

This program is distributed WITHOUT ANY WARRANTY, including but not limited to the implied warranties of merchantability or fitness for a particular purpose.

The program is free software. You may distribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation (either version 2 or any later version) and the Perl Artistic License as published by O’Reilly Media, Inc. Please open the files named gpl-2.0.txt and Artistic for a copy of these licenses.