欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

php方法断点如何实现

时间:2023-07-19



1、使用 phpdbg_break_function()来给这个testFunc() 方法设置一个断点。当代码中调用这个函数的时候,就会进入这个断点中。

prompt>r[Breakpoint#0intestFunc()at/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php:11,hits:1]>00011:functiontestFunc(){00012:global$i;00013:$i+=3;prompt>s[L120x109eef620EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]>00012:global$i;00013:$i+=3;00014:echo"ThisistestFunc!i:".$i,PHP_EOL;prompt>s[L120x109eef640BIND_GLOBAL$i"i"/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php][L130x109eef660EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]>00013:$i+=3;00014:echo"ThisistestFunc!i:".$i,PHP_EOL;00015:}

2、直接进行了两次 s 单步,可以看到 global $i 对应的 opcode 操作是 BIND_GLOBAL 。继续向下操作。

prompt>s[L130x109eef680ASSIGN_ADD$i3/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php][L140x109eef6a0EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]>00014:echo"ThisistestFunc!i:".$i,PHP_EOL;00015:}00016:prompt>s[L140x109eef6c0CONCAT"ThisistestFunc!"+$i~1/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php][L140x109eef6e0ECHO~1/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]ThisistestFunc!i:4[L140x109eef700EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php][L140x109eef720ECHO"n"/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php][L150x109eef740EXT_STMT/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source/PHPDebug互动扩展.php]>00015:}00016:00017:testFunc();

以上就是php方法断点的实现,大家学会后也赶快尝试下实例操作吧。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。