Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • Take a look at perldebug, looking at the debugger customization section, where it talks about using a .perldb file, and setting a afterinit function that pushes lines onto @DB::typeahead.
  • $DB::single = 1; could be inserted into the module code for Some::Module::... to stop it at the right point.

    I've done the lazy version of a script, copy-and-paste 20 lines of debugger commands at a time to re-run them. It's inelegant, but like you, I took a look at the debugger code and averted my eyes :) However, I just took a glance at perldebug, and it says:

           You can mock TTY input to debugger by adding arbitrary commands to
           @DB::typeahead. For exa

    --

    -DA [coder.com]

    • in 2003, mjd worked on the debugger under a perl foundation grant, which was to include a deliverable of a refactored debugger.

      http://www.perlfoundation.org/gc/grants/2003_q4.html

      That would be very, very, cool if the code were available for hacking on... I haven't been able to find it, in quick google searches; I suppose I should email mjd. :)
      --

      -DA [coder.com]

  • I haven't used it, but, it looks like it might help. http://search.cpan.org/~lbrocard/Devel-ebug-0.45/ [cpan.org]
    • Devel::ebug supports undo "The undo method undos the last action. It accomplishes this by restarting the process and passing (almost) all the previous commands to it. Note that commands which do not change state are ignored. Commands that change state are: break_point, break_point_delete, break_point_subroutine, eval, next, step, return, run and watch_point."
  • If you type 'h source' in the 5.8 debugger, you'll see

    source file Execute file containing debugger commands (may nest).

    So you don't need to do anything. Just put the commands you want into some file and then source file.

    If you want to actually write new debugger commands, take a look at Devel::Command: it lets you write Devel::Command::XXX modules to create a new 'xxx' command. Devel::Command::Viz, for instance, lets you use GraphViz::Data::Structure to visualize objects in dotty from inside the debugge