X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperldebug.pod;h=69346524ad932ba39217a0019666651d95e1abe4;hb=27bcc0a7e6b15b7b0d6f632d5f31918abd005ef4;hp=dafa57284079c36c15bd89c3900a18acc9fb3a45;hpb=a991b806546fbc2a03a9dd5fe2b122e0230c793a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perldebug.pod b/pod/perldebug.pod index dafa572..6934652 100644 --- a/pod/perldebug.pod +++ b/pod/perldebug.pod @@ -39,6 +39,12 @@ Any command not recognized by the debugger is directly executed (C'd) as Perl code in the current package. (The debugger uses the DB package for keeping its own state information.) +Note that the said C is bound by an implicit scope. As a +result any newly introduced lexical variable or any modified +capture buffer content is lost after the eval. The debugger is a +nice environment to learn Perl, but if you interactively experiment using +material which should be in the same scope, stuff it in one line. + For any text entered at the debugger prompt, leading and trailing whitespace is first stripped before further processing. If a debugger command coincides with some function in your own program, merely precede the @@ -351,7 +357,10 @@ List out all pre-prompt Perl command actions. Set an action (Perl command) to happen before every debugger prompt. A multi-line command may be entered by backslashing the newlines. -B If C is missing, all actions are wiped out! + +=item < * + +Delete all pre-prompt Perl command actions. =item << command @@ -367,8 +376,11 @@ List out post-prompt Perl command actions. Set an action (Perl command) to happen after the prompt when you've just given a command to return to executing the script. A multi-line command may be entered by backslashing the newlines (we bet you -couldn't've guessed this by now). B If C is -missing, all actions are wiped out! +couldn't've guessed this by now). + +=item > * + +Delete all post-prompt Perl command actions. =item >> command @@ -384,13 +396,16 @@ List out pre-prompt debugger commands. Set an action (debugger command) to happen before every debugger prompt. A multi-line command may be entered in the customary fashion. -B If C is missing, all actions are wiped out! Because this command is in some senses new, a warning is issued if you appear to have accidentally entered a block instead. If that's what you mean to do, write it as with C<;{ ... }> or even C. +=item { * + +Delete all pre-prompt debugger commands. + =item {{ command Add an action (debugger command) to happen before every debugger prompt. @@ -685,7 +700,7 @@ This module should implement a method named C that returns an object with two methods: C and C. These should return filehandles to use for debugging input and output correspondingly. The C method should inspect an argument containing the value of C<$ENV{PERLDB_NOTTY}> at -startup, or C<"/tmp/perldbtty$$"> otherwise. This file is not +startup, or C<".perldbtty$$"> otherwise. This file is not inspected for proper ownership, so security hazards are theoretically possible. @@ -891,6 +906,15 @@ in by Perl and may contain arbitrary commands, for security reasons, it must be owned by the superuser or the current user, and writable by no one but its owner. +You can mock TTY input to debugger by adding arbitrary commands to +@DB::typeahead. For example, your F<.perldb> file might contain: + + sub afterinit { push @DB::typeahead, "b 4", "b 6"; } + +Which would attempt to set breakpoints on lines 4 and 6 immediately +after debugger initilization. Note that @DB::typeahead is not a supported +interface and is subject to change in future releases. + If you want to modify the debugger, copy F from the Perl library to another name and hack it to your heart's content. You'll then want to set your C environment variable to say @@ -990,6 +1014,12 @@ L, and L. +When debugging a script that uses #! and is thus normally found in +$PATH, the -S option causes perl to search $PATH for it, so you don't +have to type the path or `which $scriptname`. + + $ perl -Sd foo.pl + =head1 BUGS You cannot get stack frame information or in any fashion debug functions