博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 打印调用函数入口地址(堆栈),方便调式
阅读量:7078 次
发布时间:2019-06-28

本文共 848 字,大约阅读时间需要 2 分钟。

今天网站出现一个BUG,然后直接在数据库类里面写日志,看是哪条SQL出了问题,SQL语句到是找到了,但是不知道这条SQL语句来自何处,于是就想啊,如果能有一个办法,查看当前正在运行的这个方法是被哪个方法调用的,以及上一个方法又是哪个方法调用的,以此类推,找到入口地址多好啊。不过以前自己也想过,也在网上去搜过,就是没有找到相关的办法,今天一同事(前辈)说JAVA里面这种调试用得很普遍,叫这种堆栈调试,我是就在网上搜PHP堆栈。居然被我找到了,然后把自己的办法写出来。

//调用堆栈函数,查找调用函数的源头,方便调试function print_stack_trace(){    $array =debug_backtrace();  //print_r($array);//信息很齐全   unset($array[0]);   foreach($array as $row)    {       $html .= $row['file'].':'.$row['line'].'行,调用方:'.$row['function']."

"; } return $html;}

 

我在我的数据库的核心查询函数里面调用这个方法,打印结果如下:

D:\wamp\www\meilele\includes\cls_mysql.php:471行,调用方法:queryD:\wamp\www\meilele\includes\cls_mysql.php:507行,调用方法:getAllD:\wamp\www\meilele\includes\lib_common.php:732行,调用方法:getAllCachedD:\wamp\www\meilele\includes\init.php:113行,调用方法:load_configD:\wamp\www\meilele\index.php:4行,调用方法:include_once

 

一目了然,一直找到了入口,太强悍了。以后调试又多了一种办法

转载地址:http://gpdml.baihongyu.com/

你可能感兴趣的文章
Java原生实现定时器
查看>>
【我们一起写框架】MVVM的WPF框架(三)—数据控件
查看>>
Confluence 6 导入模板的定义
查看>>
java中迭代器的原理图解和源码浅析
查看>>
EditPlus如何设置保存时不产生.bak备份文件?
查看>>
机器学习到底是什么?
查看>>
phpstorm配置svn
查看>>
用ISAPI Filter设置HttpOnly属性
查看>>
DNS域名服务器
查看>>
springmvc4环境简单搭建和定时任务
查看>>
mybatis-generator扩展教程系列 -- 自定义generatorConfig.xml参数
查看>>
基本的IPX配置
查看>>
稳扎稳打Silverlight(32) - 2.0Tip/Trick之MessageBox, Popup, 循环的几种实现方法, 动态变换主题...
查看>>
SQL Server存储过程输入参数使用表值
查看>>
SQL Injection [ Bypassing WAF (403 Forbidden) ]
查看>>
拇指接龙游戏从WIN32向Android移植过程问题记录(2)
查看>>
开源安全技术的四大好处
查看>>
LoadRunner在移动端性能测试的应用
查看>>
Hello JMX!
查看>>
轻松学习Linux之认识Shell
查看>>