10f93d4828
break start/end/psp currently always report themselves as unbound. If the client is connected to a sanbox, these should instead be treated as bound. Also, break clear all currently removes breakpoints without running their destructors in the right order, which causes the break point counter to not reset to 1.
203 linhas
3.7 KiB
Plaintext
203 linhas
3.7 KiB
Plaintext
Program %s/flow2.php loaded. Type '[r]un' or '[c]ontinue' to go.
|
|
run
|
|
flow2.php done
|
|
Program %s/flow2.php exited normally.
|
|
break test()
|
|
Breakpoint 1 set upon entering test()
|
|
@test(1)
|
|
Breakpoint 1 reached at test() on line 53 of %s/flow2.php
|
|
52 function test($a) {
|
|
53 foo($a);
|
|
54 }
|
|
|
|
step
|
|
Break at foo() on line 36 of %s/flow2.php
|
|
35 function foo($a) {
|
|
36 $c = new C1(5);
|
|
37
|
|
|
|
next
|
|
Constructor
|
|
Break at foo() on line 38 of %s/flow2.php
|
|
37
|
|
38 $i = 0;
|
|
39 foreach (genFoo($a) as $x) {
|
|
|
|
next
|
|
Break at foo() on line 39 of %s/flow2.php
|
|
38 $i = 0;
|
|
39 foreach (genFoo($a) as $x) {
|
|
40 $i++;
|
|
|
|
next
|
|
Break at foo() on line 40 of %s/flow2.php
|
|
39 foreach (genFoo($a) as $x) {
|
|
40 $i++;
|
|
41 var_dump($x);
|
|
|
|
next
|
|
Break at foo() on line 41 of %s/flow2.php
|
|
40 $i++;
|
|
41 var_dump($x);
|
|
42 }
|
|
|
|
next
|
|
Break at foo() on line 40 of %s/flow2.php
|
|
39 foreach (genFoo($a) as $x) {
|
|
40 $i++;
|
|
41 var_dump($x);
|
|
|
|
next
|
|
Break at foo() on line 41 of %s/flow2.php
|
|
40 $i++;
|
|
41 var_dump($x);
|
|
42 }
|
|
|
|
next
|
|
Finished in genFoo
|
|
Break at foo() on line 44 of %s/flow2.php
|
|
43
|
|
44 $c = new C1(6); // Runs a destructor
|
|
45 $d = $c;
|
|
|
|
next
|
|
Constructor
|
|
Destructor
|
|
Break at foo() on line 45 of %s/flow2.php
|
|
44 $c = new C1(6); // Runs a destructor
|
|
45 $d = $c;
|
|
46 $e = new C1(7);
|
|
|
|
next
|
|
Break at foo() on line 46 of %s/flow2.php
|
|
45 $d = $c;
|
|
46 $e = new C1(7);
|
|
47 $c = null;
|
|
|
|
next
|
|
Constructor
|
|
Break at foo() on line 47 of %s/flow2.php
|
|
46 $e = new C1(7);
|
|
47 $c = null;
|
|
48
|
|
|
|
next
|
|
Break at foo() on line 49 of %s/flow2.php
|
|
48
|
|
49 var_dump($d);
|
|
50 } // Ret runs two destructors
|
|
|
|
next
|
|
Destructor
|
|
Destructor
|
|
Break at test() on line 53 of %s/flow2.php
|
|
52 function test($a) {
|
|
53 foo($a);
|
|
54 }
|
|
|
|
break clear all
|
|
All breakpoints are cleared.
|
|
continue
|
|
int(8)
|
|
int(1)
|
|
object(C1)#2 (1) {
|
|
["x":"C1":private]=>
|
|
int(0)
|
|
}
|
|
|
|
break flow2.php:10
|
|
Breakpoint 1 set on line 10 of flow2.php
|
|
break flow2.php:12
|
|
Breakpoint 2 set on line 12 of flow2.php
|
|
@test(2)
|
|
Constructor
|
|
Breakpoint 1 reached at genFoo$continuation() on line 10 of %s/flow2.php
|
|
9 function genFoo($a) {
|
|
10 $a = bar($a);
|
|
11 $z = yield $a+5;
|
|
|
|
out
|
|
Break at foo() on line 40 of %s/flow2.php
|
|
39 foreach (genFoo($a) as $x) {
|
|
40 $i++;
|
|
41 var_dump($x);
|
|
|
|
continue
|
|
Breakpoint 2 reached at genFoo$continuation() on line 12 of %s/flow2.php
|
|
11 $z = yield $a+5;
|
|
12 yield $z+1;
|
|
13 error_log('Finished in genFoo');
|
|
|
|
out
|
|
Break at foo() on line 40 of %s/flow2.php
|
|
39 foreach (genFoo($a) as $x) {
|
|
40 $i++;
|
|
41 var_dump($x);
|
|
|
|
break clear all
|
|
All breakpoints are cleared.
|
|
continue
|
|
Finished in genFoo
|
|
Constructor
|
|
Destructor
|
|
Constructor
|
|
Destructor
|
|
Destructor
|
|
int(9)
|
|
int(1)
|
|
object(C1)#3 (1) {
|
|
["x":"C1":private]=>
|
|
int(0)
|
|
}
|
|
|
|
break flow2.php:26
|
|
Breakpoint 1 set on line 26 of flow2.php
|
|
@test(3)
|
|
Constructor
|
|
Finished in genFoo
|
|
Constructor
|
|
Breakpoint 1 reached at C1::__destruct() on line 26 of %s/flow2.php
|
|
25 public function __destruct() {
|
|
26 error_log('Destructor');
|
|
27 }
|
|
|
|
out
|
|
Destructor
|
|
Break at foo() on line 44 of %s/flow2.php
|
|
43
|
|
44 $c = new C1(6); // Runs a destructor
|
|
45 $d = $c;
|
|
|
|
continue
|
|
Constructor
|
|
Breakpoint 1 reached at C1::__destruct() on line 26 of %s/flow2.php
|
|
25 public function __destruct() {
|
|
26 error_log('Destructor');
|
|
27 }
|
|
|
|
out
|
|
Destructor
|
|
Breakpoint 1 reached at C1::__destruct() on line 26 of %s/flow2.php
|
|
25 public function __destruct() {
|
|
26 error_log('Destructor');
|
|
27 }
|
|
|
|
out
|
|
Destructor
|
|
Break at test() on line 53 of %s/flow2.php
|
|
52 function test($a) {
|
|
53 foo($a);
|
|
54 }
|
|
|
|
break clear all
|
|
All breakpoints are cleared.
|
|
continue
|
|
int(10)
|
|
int(1)
|
|
object(C1)#4 (1) {
|
|
["x":"C1":private]=>
|
|
int(0)
|
|
}
|
|
|
|
quit
|