Debug::Client man page on Pidora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Pidora logo
[printable version]

Debug::Client(3)      User Contributed Perl Documentation     Debug::Client(3)

NAME
       Debug::Client - client side code for perl debugger

SYNOPIS
	 use Debug::Client;
	 my $debugger = Debug::Client->new(host => $host, port => $port);
	 $debugger->listen;

	 # this is the point where the external script need to be launched
	 # first setting
	     # $ENV{PERLDB_OPTS} = "RemotePort=$host:$port"
	 # then running
	     # perl -d script

	 my $out = $debugger->get;

	 $out = $debugger->step_in;

	 $out = $debugger->step_over;

	 my ($prompt, $module, $file, $row, $content) = $debugger->step_in;
	 my ($module, $file, $row, $content, $return_value) = $debugger->step_out;
	 my $value = $debugger->get_value('$x');

	 $debugger->run();	   # run till end of breakpoint or watch
	 $debugger->run( 42 );	   # run till line 42  (c in the debugger)
	 $debugger->run( 'foo' );  # tun till beginning of sub

	 $debugger->execute_code( '$answer = 42' );

	 $debugger->execute_code( '@name = qw(foo bar)' );

	 my $value = $debugger->get_value('@name');  $value is the dumped data?

	 $debugger->execute_code( '%phone_book = (foo => 123, bar => 456)' );

	 my $value = $debugger->get_value('%phone_book');  $value is the dumped data?

	 $debugger->set_breakpoint( "file", 23 ); #    set breakpoint on file, line

	 $debugger->get_stack_trace

       Other planned methods:

	 $debugger->set_breakpoint( "file", 23, COND ); #      set breakpoint on file, line, on condition
	 $debugger->set_breakpoint( "file", subname, [COND] )

	 $debugger->set_watch
	 $debugger->remove_watch
	 $debugger->remove_breakpoint

	 $debugger->watch_variable   (to make it easy to display values of variables)

DESCRIPTION
   new
       The constructor can get two parameters: host and port.

	 my $d = Debug::Client->new;

	 my $d = Debug::Client->new(host => 'remote.hots.com', port => 4242);

       Immediately after the object creation one needs to call

	 $d->listen;

       TODO: Is there any reason to separate the two?

   listen
       See "new"

   buffer
       Returns the content of the buffer since the last command

	 $debugger->buffer;

   quit
   show_line
   step_in
   step_over
   step_out
	my ($prompt, $module, $file, $row, $content, $return_value) = $debugger->step_out;

       Where $prompt is just a number, probably useless

       $return_value  will be undef if the function was called in VOID context

       It will hold a scalar value if called in SCALAR context

       It will hold a reference to an array if called in LIST context.

       TODO: check what happens when the return value is a reference to a
       complex data structure or when some of the elements of the returned
       array are themselves references

   get_stack_trace
       Sends the stack trace command "T" to the remote debugger and returns it
       as a string if called in scalar context.	 Returns the prompt number and
       the stack trace string when called in array context.

   run
	 $d->run;

       Will run till the next breakpoint or watch or the end of the script.
       (Like pressing c in the debugger).

	 $d->run($param)

   set_breakpoint
	$d->set_breakpoint($file, $line, $condition);

   execute_code
	 $d->execute_code($some_code_to_execute);

   get_value
	my $value = $d->get_value($x);

       If $x is a scalar value, $value will contain that value.	 If it is a
       reference to a SCALAR, ARRAY or HASH then $value should be the value of
       that reference?

       Actually I think this is an internal method....

       In SCALAR context will return all the buffer collected since the last
       command.

       In LIST context will return ($prompt, $module, $file, $row, $content)
       Where $prompt is the what the standard debugger uses for prompt.
       Probably not too interesting.  $file and $row describe the location of
       the next instructions.  $content is the actual line - this is probably
       not too interesting as it is in the editor. $module is just the name of
       the module in which the current execution is.

See Also
       GRID::Machine::remotedebugtut

COPYRIGHT
       Copyright 2008-2009 Gabor Szabo. <http://www.szabgab.com/>

LICENSE
       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl 5 itself.

WARRANTY
       There is no warranty whatsoever.	 If you lose data or your hair because
       of this program, that's your problem.

CREDITS and THANKS
       Originally started out from the remoteport.pl script from Pro Perl
       Debugging written by Richard Foley.

POD ERRORS
       Hey! The above document had some coding errors, which are explained
       below:

       Around line 436:
	   Unknown directive: =head

perl v5.14.1			  2009-12-22		      Debug::Client(3)
[top]

List of man pages available for Pidora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net