diff options
Diffstat (limited to 'pod/perldebtut.pod')
-rw-r--r-- | pod/perldebtut.pod | 93 |
1 files changed, 46 insertions, 47 deletions
diff --git a/pod/perldebtut.pod b/pod/perldebtut.pod index f9f19ac08c..e2c982dcb0 100644 --- a/pod/perldebtut.pod +++ b/pod/perldebtut.pod @@ -75,7 +75,7 @@ getting this script to compile has exposed the '$varl' (with the letter 'l) variable, and simply changing $varl to $var1 solves the problem. -=head1 Looking at data and -w and w +=head1 Looking at data and -w and v Ok, but how about when you want to really see your data, what's in that dynamic variable, just before using it? @@ -144,46 +144,46 @@ That's it, you're back on home turf again. =head1 help Fire the debugger up again on your script and we'll look at the help menu. -There's a couple of ways of calling help: a simple 'B<h>' will get you a long -scrolled list of help, 'B<|h>' (pipe-h) will pipe the help through your pager -('more' or 'less' probably), and finally, 'B<h h>' (h-space-h) will give you a -helpful mini-screen snapshot: - - DB<1> h h - List/search source lines: Control script execution: - l [ln|sub] List source code T Stack trace - - or . List previous/current line s [expr] Single step [in expr] - w [line] List around line n [expr] Next, steps over subs - f filename View source in file <CR/Enter> Repeat last n or s - /pattern/ ?patt? Search forw/backw r Return from subroutine - v Show versions of modules c [ln|sub] Continue until position - Debugger controls: L List -break/watch/actions - O [...] Set debugger options t [expr] Toggle trace [trace expr] - <[<]|{[{]|>[>] [cmd] Do pre/post-prompt b [ln|event|sub] [cnd] Set breakpoint - ! [N|pat] Redo a previous command d [ln] or D Delete a/all breakpoints - H [-num] Display last num commands a [ln] cmd Do cmd before line - = [a val] Define/list an alias W expr Add a watch expression - h [db_cmd] Get help on command A or W Delete all actions/watch - |[|]db_cmd Send output to pager ![!] syscmd Run cmd in a subprocess - q or ^D Quit R Attempt a restart - Data Examination: expr Execute perl code, also see: s,n,t expr - x|m expr Evals expr in list context, dumps the result or lists methods. - p expr Print expression (uses script's current package). - S [[!]pat] List subroutine names [not] matching pattern - V [Pk [Vars]] List Variables in Package. Vars can be ~pattern or !pattern. - X [Vars] Same as "V current_package [Vars]". - For more help, type h cmd_letter, or run man perldebug for all docs. +There's a couple of ways of calling help: a simple 'B<h>' will get the summary +help list, 'B<|h>' (pipe-h) will pipe the help through your pager (which is +(probably 'more' or 'less'), and finally, 'B<h h>' (h-space-h) will give you +the entire help screen. Here is the summary page: + +DB<1>h +List/search source lines: Control script execution: + l [ln|sub] List source code T Stack trace + - or . List previous/current line s [expr] Single step [in expr] + v [line] View around line n [expr] Next, steps over subs + f filename View source in file <CR/Enter> Repeat last n or s + /pattern/ ?patt? Search forw/backw r Return from subroutine + M Show module versions c [ln|sub] Continue until position +Debugger controls: L List break/watch/actions + o [...] Set debugger options t [expr] Toggle trace [trace expr] + <[<]|{[{]|>[>] [cmd] Do pre/post-prompt b [ln|event|sub] [cnd] Set breakpoint + ! [N|pat] Redo a previous command B ln|* Delete a/all breakpoints + H [-num] Display last num commands a [ln] cmd Do cmd before line + = [a val] Define/list an alias A ln|* Delete a/all actions + h [db_cmd] Get help on command w expr Add a watch expression + h h Complete help page W expr|* Delete a/all watch expressions + |[|]db_cmd Send output to pager ![!] syscmd Run cmd in a subprocess + q or ^D Quit R Attempt a restart +Data Examination: expr Execute perl code, also see: s,n,t expr + x|m expr Evals expr in list context, dumps the result or lists methods. + p expr Print expression (uses script's current package). + S [[!]pat] List subroutine names [not] matching pattern + V [Pk [Vars]] List Variables in Package. Vars can be ~pattern or !pattern. + X [Vars] Same as "V current_package [Vars]". +For more help, type h cmd_letter, or run man perldebug for all docs. More confusing options than you can shake a big stick at! It's not as bad as it looks and it's very useful to know more about all of it, and fun too! There's a couple of useful ones to know about straight away. You wouldn't -think we're using any libraries at all at the moment, but 'B<v>' will show -which modules are currently loaded, by the debugger as well your script. -'B<V>' and 'B<X>' show variables in the program by package scope and can be -constrained by pattern. 'B<m>' shows methods and 'B<S>' shows all subroutines -(by pattern): +think we're using any libraries at all at the moment, but 'B<M>' will show +which modules are currently loaded, and their version number, while 'B<m>' +will show the methods, and 'B<S>' shows all subroutines (by pattern) as +shown below. 'B<V>' and 'B<X>' show variables in the program by package +scope and can be constrained by pattern. DB<2>S str dumpvar::stringify @@ -198,11 +198,10 @@ the 'name': FileHandle(stderr) => fileno(2) Remember we're in our tiny program with a problem, we should have a look at -where we are, and what our data looks like. First of all let's have a window -on our present position (the first line of code in this case), via the letter -'B<w>': +where we are, and what our data looks like. First of all let's view some code +at our present position (the first line of code in this case), via 'B<v>': - DB<4> w + DB<4> v 1 #!/usr/bin/perl 2: use strict; 3 @@ -215,9 +214,9 @@ on our present position (the first line of code in this case), via the letter 10 ); At line number 4 is a helpful pointer, that tells you where you are now. To -see more code, type 'w' again: +see more code, type 'v' again: - DB<4> w + DB<4> v 8 'welcome' => q(Hello World), 9 'zip' => q(welcome), 10 ); @@ -477,9 +476,9 @@ We'll simply continue down to our pre-set breakpoint with a 'B<c>': DB<1> c main::(temp:10): if ($deg eq 'c') { -Followed by a window command to see where we are: +Followed by a view command to see where we are: - DB<1> w + DB<1> v 7: my ($deg, $num) = ($1, $2); 8: my ($in, $out) = ($num, $num); 9: $DB::single=2; @@ -513,12 +512,12 @@ using the list 'L' command: Note that to delete a breakpoint you use 'd' or 'D'. Now we'll continue down into our subroutine, this time rather than by line -number, we'll use the subroutine name, followed by the now familiar 'w': +number, we'll use the subroutine name, followed by the now familiar 'v': DB<3> c f2c main::f2c(temp:30): my $f = shift; - DB<4> w + DB<4> v 24: exit; 25 26 sub f2c { @@ -586,7 +585,7 @@ Actions, watch variables, stack traces etc.: on the TODO list. a - W + w t |