Changeset 9676
- Timestamp:
- 12/14/09 00:53:50 (2 years ago)
- Location:
- trunk/Debug-Client
- Files:
-
- 2 edited
-
lib/Debug/Client.pm (modified) (9 diffs)
-
t/05-execute.t (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Debug-Client/lib/Debug/Client.pm
r9675 r9676 39 39 $debugger->run( 'foo' ); # tun till beginning of sub 40 40 41 $debugger->execute_code 42 41 $debugger->execute_code( '$answer = 42' ); 42 43 $debugger->execute_code( '@name = qw(foo bar)' ); 44 45 my ($value, $prompt) = $debugger->get_value('@name'); $value is the dumped data? 46 47 $debugger->execute_code( '%phone_book = (foo => 123, bar => 456)' ); 48 49 my ($value, $prompt) = $debugger->get_value('%phone_book'); $value is the dumped data? 50 51 43 52 $debugger->set_breakpoint( "file", 23 ); # set breakpoint on file, line 44 53 … … 78 87 Reuse => 1); 79 88 $sock or die "Could not connect to '$args{host}' '$args{port}' no socket :$!"; 80 logger("listening on '$args{host}:$args{port}'");89 _logger("listening on '$args{host}:$args{port}'"); 81 90 $self->{sock} = $sock; 82 91 … … 105 114 } 106 115 116 =head2 quit 117 118 =cut 119 120 sub quit { $_[0]->_send('q') } 121 122 =head2 show_line 123 124 =cut 125 126 sub show_line { $_[0]->send_get('.') } 127 128 129 =head2 step_in 130 131 =cut 132 107 133 sub step_in { $_[0]->send_get('s') } 134 135 =head2 step_over 136 137 =cut 138 108 139 sub step_over { $_[0]->send_get('n') } 109 sub quit { $_[0]->_send('q') } 110 sub show_line { $_[0]->send_get('.') } 111 112 sub get_stack_trace { 113 my ($self) = @_; 114 $self->_send('T'); 115 my $buf = $self->_get; 116 117 if (wantarray) { 118 my $prompt = _prompt(\$buf); 119 return($buf, $prompt); 120 } else { 121 return $buf; 122 } 123 } 124 125 126 127 sub run { 128 my ($self, $param) = @_; 129 if (not defined $param) { 130 $self->send_get('c'); 131 } else { 132 $self->send_get("c $param"); 133 } 134 } 140 141 =head2 step_out 142 143 =cut 135 144 136 145 sub step_out { … … 167 176 } 168 177 178 179 =head2 get_stack_trace 180 181 =cut 182 183 sub get_stack_trace { 184 my ($self) = @_; 185 $self->_send('T'); 186 my $buf = $self->_get; 187 188 if (wantarray) { 189 my $prompt = _prompt(\$buf); 190 return($buf, $prompt); 191 } else { 192 return $buf; 193 } 194 } 195 196 =head2 run 197 198 =cut 199 sub run { 200 my ($self, $param) = @_; 201 if (not defined $param) { 202 $self->send_get('c'); 203 } else { 204 $self->send_get("c $param"); 205 } 206 } 207 208 209 =head2 set_breakpoint 210 211 =cut 212 169 213 # TODO: Line 15 not breakable. 170 214 sub set_breakpoint { … … 185 229 } 186 230 231 =head2 execute_code 232 233 =cut 187 234 188 235 sub execute_code { … … 199 246 } 200 247 248 =head2 get_value 249 250 =cut 251 252 # TODO if the given $x is a reference then something (either this module 253 # or its user) should actually call x $var 201 254 sub get_value { 202 255 my ($self, $var) = @_; … … 227 280 228 281 sub _parse_dumper { 229 my ($str) = @_; 282 my ($str) = @_; 283 return $str; 230 284 } 231 285 … … 242 296 die $!; # TODO better error handling? 243 297 } 244 logger("---- ret '$ret'\n$buf\n---");298 _logger("---- ret '$ret'\n$buf\n---"); 245 299 if (not $ret) { 246 300 last; 247 301 } 248 302 } 249 logger("_get done");303 _logger("_get done"); 250 304 251 305 $self->{buffer} = $buf; … … 307 361 } 308 362 309 sub logger {363 sub _logger { 310 364 print "$_[0]\n" if $ENV{DEBUG_LOGGER}; 311 365 } -
trunk/Debug-Client/t/05-execute.t
r9659 r9676 12 12 my $D = re('\d+'); 13 13 14 plan(tests => 10); 14 our $TODO; # needed becasue Test::More is required and not used 15 16 plan(tests => 13); 15 17 16 18 my $debugger = start_debugger(); … … 58 60 } 59 61 60 # TODO check the get_value on hash and array 61 #{ 62 # my @out = $debugger->get_value('@qwe'); 63 # cmp_deeply(\@out, [23, 42, $D], 'execute 1') 64 # or diag($debugger->buffer); 65 #} 62 TODO: { 63 local $TODO = 'get_value of array'; 64 my @out = $debugger->get_value('@qwe'); 65 cmp_deeply(\@out, [23, 42, $D], 'get_value of array') 66 or diag($debugger->buffer); 67 } 68 69 { 70 my @out = $debugger->execute_code('%h = (fname => "foo", lname => "bar")'); 71 cmp_deeply(\@out, ['', $D], 'execute 3') 72 or diag($debugger->buffer); 73 } 74 75 TODO: { 76 local $TODO = 'get_value of hash'; 77 my @out = $debugger->get_value('%h'); 78 cmp_deeply(\@out, [$D], 'get_value of hash') 79 or diag($debugger->buffer); 80 } 81 66 82 67 83 {
Note: See TracChangeset
for help on using the changeset viewer.
