未知php代码分析,堆栈打印函数总结
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
分析别人的php
代码,总是需要:比较大的耐心以及灵活跳跃的思路。当然,如果辅助以一些调试手段,就会起到事半功倍的效果。php程序的分析,一般可以从php程序体和mysql数据库,这两个方面着手分析。
mysql
方面,一般可以从慢查询角度分析,但不是本文的描述重点,具体可以参见文末链接。php
方面,在本文中,也不是从扩展角度来分析php堆栈,而只是利用php原生提供功能来分析源码。目标是要得到代码函数间的调用关系。
苏南大叔已经通过关键词定位
到了关键的函数代码点。但是程序是通过什么样的顺序,执行到当前代码位置的呢?代码运行期间,有着什么样的函数调用关系呢?本文解决的就是这个问题。苏南大叔通过在关键点代码附近添加如下辅助代码,来进行分析。
方案一debug_backtrace()
print_r(debug_backtrace());
这个方案,必须有强大的信息过滤能力,因为返回结果中,似乎无用信息过多。其实只需要数组根元素下的数据即可。下面的链接,是个相关函数说明。大家可以看看。
方案二,异常对象的方法getTraceAsString()
$e=new Exception;
var_dump($e->getTraceAsString());
这个方案,其实有点剑走偏锋,不过,效果确实相当不错,结果简洁明了,推荐大家使用。
相关链接
- 《如何使用php扩展phptrace来分析源码》 https://newsn.net/say/phptrace-123.html
- 《如何使用php代码分析工具xhprof》 https://newsn.net/say/xhprof-123.html
- 《如何利用mysql的慢查询功能,对未知系统进行分析》 https://newsn.net/say/mysql-trace.html
总结
分析别人的代码,才能学习进步。别人好的思路,都要包容兼收。对吧?好文章也是,想知道苏南大叔的php相关好文章好思路嘛?点击下面这个链接,就可以知道了。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。