e5983c0e98
Breakpoints correspond to source lines, not byte code operations, so more than one operation may correspond to a break point. Each operation checks for breakpoints, so breakpoints are disabled when encountered, otherwise commands such as continue and next would get stuck on a line until all the byte code operation for a line have been carried out. Such break points are re-enabled as soon as a byte code for another line is executed. This does not work if no other byte codes are carried out (i.e. if JITted code runs) until control loops back to the disabled break point. Consequently the disable logic now keeps track of the offset of the byte that first triggered disablement. If the break point is still disabled by the time control comes back to that byte code, the break point is temporarily enabled. Differential Revision: D909092
20 linhas
298 B
PHP
20 linhas
298 B
PHP
<?php
|
|
|
|
class A extends RecursiveDirectoryIterator {
|
|
public function current() {
|
|
return 'current() called';
|
|
}
|
|
}
|
|
|
|
function main() {
|
|
|
|
$it = new RecursiveIteratorIterator(
|
|
new A(__DIR__), RecursiveIteratorIterator::SELF_FIRST
|
|
);
|
|
|
|
foreach ($it as $a) {
|
|
var_dump($a);
|
|
}
|
|
}
|
|
main();
|