1, menggunakan phpdbg_break_function() untuk menguji fungsi testFunc()点中。
cepat> r [Breakpoint #0 di testFunc() di /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php:11, hit: 1] >00011: fungsi tesFunc(){ 00012: global $i; 00013: $i += 3; cepat> s [L12 0x109eef620 EXT_STMT /Pengguna/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] >00012: global $i; 00013: $i += 3; 00014: echo "Ini testFunc! i:" . $i, PHP_EOL; cepat> s [L12 0x109eef640 BIND_GLOBAL $i "i" /Pengguna/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] [L13 0x109eef660 EXT_STMT /Pengguna/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] >00013: $i += 3; 00014: echo "Ini testFunc! i:" . $i, PHP_EOL; 00015: }
2、直接进行了两次 s 单步,可以看到 global $i 对应的 opcode 操作是 BIND_GLOBAL 。继续向下操作。
cepat> s [L13 0x109eef680 ASSIGN_ADD $i 3 /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] [L14 0x109eef6a0 EXT_STMT /Pengguna/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] >00014: echo "Ini testFunc! i:" . $i, PHP_EOL; 00015: } 00016: cepat> s [L14 0x109eef6c0 CONCAT "Ini testFunc!"+ $i ~1 /Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] [L14 0x109eef6e0 ECHO ~1 /Pengguna/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] Ini adalah tesFunc! saya:4 [L14 0x109eef700 EXT_STMT /Pengguna/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] [L14 0x109eef720 ECHO "n" /Pengguna/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] [L15 0x109eef740 EXT_STMT /Pengguna/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php] >00015: } 00016: 00017: tesFunc();
以上就是php方法断点的实现,大家学会后也赶快尝试下实例操作吧。